sql server创建新用户名登录以及为表添加角色和权限的多种方法

时间:2020-12-23 08:48:34

 

1.在SQL Server Management Studio中为所属的SQL服务器设置为SQL Server和Windows NT混合安全认证模式。其步骤如下:

(1)    在对象资源管理器中,用鼠标右击需要设置的SQL服务器,在弹出的菜单中选择“属性”项,则出现服务器对话框。在“选择页”中选择“安全性”。

(2)在“服务器身份验证”中选择“SQL Server和Windows身份验证模式”单选项。

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

 

 

2.在SQL Server Management Studio中为自己建立一个服务器用户、数据库用户和数据库角色。

(1)    在对象资源管理器中展开服务器,用鼠标单击“安全性”文件夹右侧的‘+’,再用鼠标右击“登录名”,在弹出的菜单中选择“新建登录名”选项,则出现新建登录名对话框。

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(2选择“选择页”中的“常规”选项,输入登录名(本例为user),选择SQL Server身份验证,并输入用户密码。指定此登录名可以访问的数据库(本例选中Test数据库)。

  sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(3)选择“选择页”中的“服务器角色”选项,需要确定用户所属的服务器角色,在本例中采用缺省值public即可。

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(4)选择“选择页”中的“用户映射”选项,需要确定映射到此登录名的用户,在本例中勾选Test。数据库角色成员身份选择public。

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(5)单击“确定”按钮,即完成了创建登录用户的工作。

3.登录新建用户

(1)重新登录SQL Server Management Studio,如图6-5所示,选择“SQL Server身份验证”,用户名为user,输入用户密码,连接到SQL Server。

sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

 

(2)    新建查询,选择Test数据库,在查询编辑窗口中键入SQL查询命令“SELECT * FROM Student”。运行后,在运行结果窗口得到消息“拒绝了对对象 'Student'(数据库 'Test',所有者 'dbo')的 SELECT 权限。”,可见用户user没有对Student表的SELECT权限。

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

3.要将Test数据库的部分操作权限赋予数据库用户user,有两种方法。

方法一:通过图形界面方式

(1)断开连接,以sa身份进入SQL Server Management Studio,展开服务器,用鼠标单击“数据库”文件夹右侧的‘+’,用鼠标单击Test数据库文件夹右侧的‘+’,用鼠标右击“用户”。在屏幕右侧的“用户”窗口中选择“user”项,用鼠标右击,在弹出的菜单中选择“属性”项,则出现数据库用户属性对话框,选择“安全对象”选项.

 

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(2)点击“搜索”按钮,出现“添加对象”对话框,选择“特定对象”,点击“确定”按钮.

 

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(3)在“选择对象”对话框中点击“对象类型”按钮,并点击表,然后点击确定。

 

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

    (4)在“选择对象”对话框中,点击“浏览”按钮,进入“查找对象”对话框。

         sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(5)在“查找对象”对话框中勾选表Student,然后点击“确定”按钮,再次返回到“选择对象”对话框。

 

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(6)在安全对象设置对话框中,通过勾选dbo.Student对应的权限给用户user授权。勾选“选择”权限对应的授权框,再点击“确定”按钮,使得用户user获得Student表的查询权限。

  sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

 

(7)验证用户user对Student表的操作权限。以用户user的身份登录,在SQL Server Management Studio中新建查询,并在查询编辑区中使用SQL语句查询到Student表中的数据。但是如果以用户user的身份查询其他基本表,依然无法查看表中数据。

sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

 

sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

 

方法二:通过SQL的数据控制功能

       对用户user授权,必须是数据库对象拥有者以上用户授予。我们可以以系统管理员或sa用户登录。选择“Test”数据库,选择“Test”数据库,在查询编辑区中输入授权语句“GRANT SELECT ON SC TO [user];”,然后执行即可。

 

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

 

注意:user与关键字冲突,此时应当加入一个中括号。

 

5.使用角色来管理数据库权限

创建角色,使该角色拥有一组权限,然后将角色授予一个指定的用户。

 

方法一:通过图形界面

创建角色R1,使该角色拥SC表的插入、更新权限,然后将角色R1授予指定的用户user。

 

(1)    在“对象资源管理器”中展开服务器,用鼠标单击“数据库”文件夹左侧的‘+’,用鼠标单击Test数据库文件夹左侧的‘+’,展开数据库文件夹,然后依次展开“安全性”、“角色”。鼠标右击“数据库角色”,在弹出的菜单中选择“新建数据库角色”项,则出现数据库角色属性对话框。

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(2)在“选择页”中选择“常规”选项,并在“角色名称”一栏输入R1。

  sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(3)赋予角色权限的方法与赋予“数据库用户权限”的方法类似。在“选择页”中选择“安全对象”选项。

sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

 

(4)点击“搜索”按钮,出现“添加对象”对话框,选择“特定对象”,点击“确定”按钮 

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(5)在“选择对象”对话框中点击“对象类型”按钮。

 

(6)在“选择对象类型”对话框中勾选“表”,然后点击“确定”按钮,返回到“选择对象”对话框。

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

 

(7)在“选择对象”对话框中,点击“浏览”按钮,进入“查找对象”对话框。

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(8在“查找对象”对话框中勾选表SC,然后点击“确定”按钮,再次返回到“选择对象”对话框。

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(9)点击“确定”按钮,返回到安全对象设置对话框。

sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

 

(10)在安全对象设置对话框中,通过勾选dbo.SC对应的权限给角色R1授权。勾选“选择”,“插入”权限对应的授权框,点击“确定”按钮,使得角色R1获得SC表的插入和修改权限。

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(11)在“选择页”中选择“常规”选项,点击“添加”按钮,实现将角色R1授予用户。

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(12)在“选择数据库用户或角色”对话框中,点击“浏览”按钮,进入“查找对象”对话框。

sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

(13)如图6-26所示,在“查找对象”对话框中勾选user,点击“确定”按钮返回。

sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

 

(14)点击“确定”按钮完成授权,实现把角色R1授予用户user。 

(15)验证用户user的操作权限。以用户user的身份登录,在SQL Server Management Studio中新建查询,并在查询编辑区中使用SQL语句,验证用户user的操作权限。

sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

方法二:通过SQL的数据控制功能

       对角色授权,必须是数据库对象拥有者以上用户授予。我们可以以系统管理员或sa用户登录SQL Server Management Studio。

创建角色R2,使该角色拥Student表的SELECT、INSERT权限,然后将角色R2授予指定的用户U2和U3。(自行创建U2,U3)

      

1)在文本编辑区中使用语句sp_addrole @rolename='角色名'创建角色R2;

sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

 

 

注意:选择数据库为test

 

2)用GRANT语句为角色R2赋予Student表的SELECT、INSERT权限;

 sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

3)在查询分析器中使用语句sp_addrolemember '角色名','用户名'将角色授予指定的用户。

sql server创建新用户名登录以及为表添加角色和权限的多种方法

sql server创建新用户名登录以及为表添加角色和权限的多种方法

 

 

   6.分别以用户U1,U2,U3的身份进入数据库,实现权限内的操作和权限外的操作,看看会得到什么结果?