数据库,角色,用户,安全
 
     登录SQL server 2008可以用windows身份验证也可以用sql server身份验证,不论那种,进入数据库后
 
都拥有超级用户的权限,这显然是不太安全的。合理的做法是:对于一个数据库,应该是由不同权限的用户
 
进行操作和管理。
 
       本博文将结合一个例子来讲解如何建立数据库,并为数据库建立不同权限的用户。
 
       一、登录数据库管理系统(首先要打开SQL Server数据库服务)
 
       1、用windows身份验证登录
 
 
        2、用sql server身份验证登录,默认的登录名是sa,如果密码忘记了可以用windows身份登录后,进入
 
更改。安全性->登录名->双击sa->设置密码。
 
 
          二、建立数据库library
 
          1、数据库->新建数据库
 
 
         2、填写数据库名称
 
 
         三、为数据库library建立基本表:学生表student、图书表book、借阅表borrow。并各导入一定的数据。
 
        四、创建用户。
 
        这里为简单起见,只创建两个用户——学生用户(student_user)、管理员用户(admin_user)。其中学
 
生用户只能查阅(select),而管理员用户可以查阅(select)、更新(update)、插入(insert)、删除(delete)。
 
        1、首先要创建登录名,并未登录名指定用户
 
              ①学生用户 
[sql] 
use library  
go  
create login stu with password='123';  
  
use library  
go  
create user student_user for login stu;  
              ②管理员用户
 
[sql] 
use library  
go  
create login stu with password='123';  
  
use library  
go  
create user student_user for login stu;  
         
           2、创建角色并未角色授权
 
                ①学生角色
 
[sql] 
create role student_role;  
grant select on book to student_role;  
grant select on borrow to student_role;  
grant select on student to student_role;  
                ②管理员角色
 
[sql] 
create role admin_role;  
grant select,update,delete,insert on book to admin_role;  
grant select,update,delete,insert on borrow to admin_role;  
grant select,update,delete,insert on student to admin_role;  
 
            3、将角色授予用户。student_role授予student_user,admin_role授予admin_user。
 
                  ①student_role授予sthdent_user
 
[sql] 
exec sp_addrolemember   
@rolename='student_role',  
@membername='student_user';  
                  ②admin_role授予admin_user
 
[sql] 
exec sp_addrolemember   
@rolename='admin_role',  
@membername='admin_user';  
 
            五、分别用stu和admin登录,可以发现stu登录后只能对基本表进行查询操作,而admin登录后除了可以
 
查询外,还可以插入、删除、更新。这样就达到了博文开始时所述,不同权限的用户进行不同的操作,从而使
 
得数据库更加安全。
 

SQl Server 中登录名 、用户、角色、概念一览的更多相关文章

  1. SQL SERVER服务器登录名、角色、数据库用户、角色、架构的关系

    原创链接:https://www.cnblogs.com/junfly/articles/2798023.html SQL SERVER 基础教程中关于服务器登录名.服务器角色.数据库用户.数据库角色 ...

  2. SQL Server客户端登录名与数据库用户关联

    数据库迁移之后,在新的SQL Server客户端工具设置关联时,往往会报错: 用户.组或角色 'XXX' 在当前数据库中已存在. 解决方法: 首先介绍一下sql server中“登录”与“用户”的区别 ...

  3. SQL语句操作SQL SERVER数据库登录名、用户及权限

    要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许连接 SQL Server 服务器的权利: 获得访问特定数据库中数据的权利(select, update, de ...

  4. SQL 登录名 用户 角色

    参考博客:http://www.cnblogs.com/ChineseMoonGod/p/5860449.html,非常感谢博主的知识分享. 1.创建一个登录名,完全操作数据库权限,步骤为:创建登录名 ...

  5. SQL Server新建登录名,实现SQL Server身份验证模式

    一.如果是默认安装,没有选择SQL Server和Windows身份验证模式,需要重新设置. 1.右击服务器,属性,常规项中点选“SQL Server和Windows身份验证模式” 2.点击“确定”按 ...

  6. sql server中的孤立用户

    此问题出现在数据库的移值上.移值后,数据库的登陆名和数据库用户名孤立,原数据中,用建立的用户名密码登陆可以访问数据库,但是移值后就不能访问了.而且如果您尝试向该登录帐户授予数据库访问权限,则会因该用户 ...

  7. Microsoft SQL Server 数据库服务器管理维护角色

    固定服务器角色: 按照从最低级别的角色(bulkadmin)到最高级别的角色(sysadmin)的顺序进行描述: Bulkadmin:这个服务器角色的成员可以运行BULK INSERT语句.这条语句允 ...

  8. SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数

    原文:SQL Server中的CLR编程--用.NET为SQL Server编写存储过程和函数 很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程.触发器和存储过程的,不过之 ...

  9. SQL SERVER 2008 服务器登录名、角色、数据库用户、角色、架构的关系

    sql server登录名.服务器角色.数据库用户.数据库角色.架构区别联系 1.一个数据库用户可以对应多个架构(架构是表容器).架构里面包含的是数据库表. 2.一个数据库角色有可能涉及多个架构.数据 ...

随机推荐

  1. Delphi 泛型(三十篇)

    Delphi 泛型(三十篇)http://www.cnblogs.com/jxgxy/category/216671.html

  2. Spark中经常使用工具类Utils的简明介绍

    <深入理解Spark:核心思想与源代码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源代码分析>一书正式出版上市 <深入理解Spark:核心思想与源代码分析 ...

  3. threw load() exception java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet(maven项目git后)

    maven项目git全新项目后启动服务出现的, 错误原因: 进入到tomcat的部署路径.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpw ...

  4. GetTickCount()函数的陷阱!

    开发中经经常使用GetTickCount()函数来进行间隔时间的推断.如推断某一段代码运行花了多少时间等,使用比較方便. 可是仅仅针对寻常的一些測试.近期开发一个服务程序时,也在代码中用GetTick ...

  5. Atitit.获取approot api 应用根路径 java c#.net php asp

    Atitit.获取approot api 应用根路径 java c#.net php asp 1. 如果根路径返回empty,否则返回/app,兼容getContextPath() <scrip ...

  6. vs 2015 update 3各版本下载地址

    微软在06月27日发布了Visual Studio 2015 Update 3 .在MSDN中微软也提供下载,而且MSDN的Visual Studio 2015 Update 3与官方免费下载的文件是 ...

  7. Angular 资料大集合

    https://angular.cn/   Angular 的中文网 http://www.apjs.net/#dir1    Angular 的中文网 http://www.ngnice.com/  ...

  8. Java内存模型FAQ(一) 什么是内存模型

    原文:http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html 第一章 译者:方腾飞 在多核系统中,处理器一般有一层或者多层的缓存,这 ...

  9. SpringMvc 面向切面1

    1.配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC &q ...

  10. Visual Studio的 Apache Cordova 插件CTP3.0发布!

    北京时间12号晚23点开始的Connect()活动上,微软发布了一系列激动人心的消息! .NET开源了!以后.NET将可在Linux和Mac OS平台上运行! VS免费了!!如果你是学生,个人开发者, ...