1 / 76

数据库原理与 SQL Server

数据库原理与 SQL Server. 第 8 章 保证数据安全性. 第 8 章 保证数据安全性. 8.1 设置登录数据库服务器的权限 — 登录账户管理 8.2 设置使用数据库的权限 — 用户管理 8.3 设置访问数据的权限 — 角色管理 8.4 设置获得访问的许可 — 许可管理 实训 安全管理. 8.1 设置登录数据库服务器的权限 — 登录账户管理. 8.1.1 SQL Server 2000 的认证模式 8.1.2 配置 SQL Server 2000 认证模式 8.1.3 创建登录账户 8.1.4 修改登录账户

Download Presentation

数据库原理与 SQL Server

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 数据库原理与SQL Server 第8章 保证数据安全性

  2. 第8章 保证数据安全性 • 8.1 设置登录数据库服务器的权限 —登录账户管理 • 8.2 设置使用数据库的权限—用户管理 • 8.3 设置访问数据的权限—角色管理 • 8.4 设置获得访问的许可—许可管理 实训 安全管理

  3. 8.1 设置登录数据库服务器的权限—登录账户管理8.1 设置登录数据库服务器的权限—登录账户管理 8.1.1 SQL Server 2000的认证模式 8.1.2 配置SQL Server 2000认证模式 8.1.3 创建登录账户 8.1.4 修改登录账户 8.1.5 删除登录账户

  4. 8.1.1 SQL Server 2000的认证模式 每个网络用户在访问SQL Server服务器时,都必须经过两个阶段的身份认证:第一个阶段的身份认证是认证用户是否具有连接服务器的资格,SQL Server使用“登录账户”来标识用户的连接资格;第二个阶段的身份认证是认证用户是否具有访问和操作数据库的资格。下面,首先讨论第一阶段的认证,也就是对登录账户的认证。

  5. 8.1.1 SQL Server 2000的认证模式 SQL Server 2000对登录账户的认证,有两种模式 • Windows认证模式只要用户通过了Windows平台的身份验证,就可以成功连接到SQL Server服务器。 • SQL Server和Windows混合认证模式在这种方式下,对于可信连接,系统使用Windows认证模式;对于不可信连接,使用SQL Server认证模式。

  6. 8.1.1 SQL Server 2000的认证模式 登录账户的认证过程

  7. 8.1.2 配置SQL Server 2000认证模式 在SQL-EM中,单击展开左侧窗口中的服务器组,选中要进行认证模式设置的服务器,单击右键,打开快捷菜单,选择“属性”命令,打开“SQL Server属性(配置)”对话框,选择其中的“安全性”选项卡。

  8. 设置认证模式 设置对登录账户连接审核信息的记录方式 8.1.2 配置SQL Server 2000认证模式

  9. 8.1.3 创建登录账户 登录账户的信息存储在系统数据库master的表syslogins中,当在SQL Server 2000系统中增加一个登录账户时,一般要指定一个默认数据库。 SQL Server 2000有两个默认的登录账户:sa和BUILTIN\ Administrators,它们拥有SQL Server 2000系统和全部数据库中所有对象的权限。不管SQL Server 2000实际的数据库所有权如何,它们被默认为是任何用户数据库的管理者。所以它们拥有最高的管理权限,可以执行服务器范围内的所有操作。 这两个登录账户不同的地方是:sa使用的是SQL Server身份验证,而BUILTIN\Administrators使用的是Windows身份验证。

  10. 8.1.3 创建登录账户 1.使用SQL语句 sp_addlogin [@loginame=]'<登录账户名>'[,[@passwd=]'<密码>'][,[@defdb=]'<数据库名>'][,[@deflanguage=]'<语言>']

  11. 8.1.3 创建登录账户 例8-1 新建登录账户login1,密码为login1,默认数据库为student。

  12. (1)启动SQL-EM,展开左侧窗口中指定的数据库服务器“安全性”文件夹,单击“登录”结点,右侧窗口显示已存在的登录账户的信息。(1)启动SQL-EM,展开左侧窗口中指定的数据库服务器“安全性”文件夹,单击“登录”结点,右侧窗口显示已存在的登录账户的信息。 2.使用SQL-EM (2)选择左边窗格中的“登录”结点,单击右键,打开快捷菜单,选择“新建登录”命令,打开“SQL Server登录属性-新建登录”对话框。

  13. 2.使用SQL-EM (3)单击“常规”选项卡,在“名称”文本框中输入新建登录账户的名称,也可以单击名称文本框后的按钮,选择Windows用户作为登录账户。同时,在该选项卡上还可以设置登录账户的身份验证模式、默认语言和默认数据库。

  14. 2.使用SQL-EM (4)单击“服务器角色”选项卡,可以设置该登录账户对应的服务器角色,在“数据库访问”选项卡上可以设置该登录账户的数据库访问许可。角色和访问许可的相关知识在8.3节和8.4节介绍。 (5)单击“确定”按钮,完成新登录账户的创建。此时,在右侧窗口中可以看到新创建的登录账户的相关信息。

  15. 8.1.4 修改登录账户 1.使用SQL语句 (1)修改登录账户默认的数据库 修改登录账户默认的数据库可以通过执行系统存储过程sp_defaultdb实现。其基本语法格式为: sp_defaultdb [@loginame=]'<登录账户>',[@defdb=] ' <数据库名>'

  16. 8.1.4 修改登录账户 例8-2 将登录账户login1的默认数据库修改为pubs。

  17. 8.1.4 修改登录账户 (2)修改登录账户密码 修改登录账户密码可以通过执行系统存储过程sp_password实现。其基本语法格式为: sp_password [[@old=]'<原密码>',]{[@new=]'<新密码>'}[,[@loginame=]'<登录账户>']

  18. 8.1.4 修改登录账户 例8-3 将登录账户login1的密码由login1改为abcdef。

  19. 2.使用SQL-EM (1)启动SQL-EM,展开左侧窗口中指定的数据库服务器“安全性”文件夹,单击“登录”结点,指向右侧窗口要修改的登录账户,单击右键,选择“属性”命令,打开“SQL Server登录属性”对话框。 (2)修改该登录账户的密码、默认库等属性,最后单击“确定”按钮,完成登录账户的修改。

  20. 8.1.5 删除登录账户 1.使用SQL语句 删除登录账户可以通过执行系统存储过程sp_droplogin实现。其基本语法格式为: sp_droplogin [@loginame=]'<登录账户>

  21. 8.1.5 删除登录账户 例8-4 删除登录账户login1。

  22. 2.使用SQL-EM (1) 启动SQL-EM,展开左侧窗口中指定的数据库服务器“安全性”文件夹,单击“登录”结点,指向右侧窗口要删除的登录账户,单击右键,选择“删除”命令,打开“确认删除登录账户”对话框。 (2) 单击“是”按钮,完成登录账户的删除。

  23. 8.2 设置使用数据库的权限—用户管理 8.2.1 特殊的数据库用户 8.2.2 创建数据库用户 8.2.3 删除数据库用户

  24. 8.2.1 特殊的数据库用户 在SQL Server 2000中包含有以下三种特殊的数据库用户,具有特殊的权限和作用。 (1) 数据库所有者(dbo) (2) 数据库对象所有者 (3) guest。

  25. 8.2.1 特殊的数据库用户 1.数据库所有者 SQL Server 2000数据库的创建者即为该数据库的所有者。此外,固定服务器角色sysadmin的所有成员被映射为每一个数据库的dbo。dbo用户不能从数据库中删除,dbo对数据库具有所有操作权限,并且可以将所拥有的数据库操作权限授予其他用户。 sysadmin成员所创建的数据库对象自动属于dbo,而不属于用户自身。所以在SQL语句中限定数据库对象时,如果数据库对象为sysadmin角色成员所创建,则使用dbo,否则使用创建者的用户名称限定数据库对象。

  26. 8.2.1 特殊的数据库用户 例8-5 如果student数据库有stonepf和stone两个用户,其中stonepf属于sysadmin角色,而stone是db_owner角色成员。他们分别在student数据库中建立两个数据表Table1和Table2,指定这两个对象时分别使用dbo和stone。 脚本: SELECT * FROM MyDB.dbo.Table1 SELECT * FROM MyDB.stone.Table2

  27. 8.2.1 特殊的数据库用户 2.数据库对象所有者 SQL Server 2000数据库对象包括表、索引、视图、默认、规则、触发器、用户定义函数和存储过程等,数据库对象的创建者即成为该数据库对象的所有者。数据库对象所有者隐含具有该对象的所有权限,只有他显式地向其他用户授权后,其他用户才能访问该数据库对象。 在一个数据库中不同用户可以创建同名的数据库对象,所以当用户访问数据库对象时,必须对数据库对象所有者进行限定。例如下面的语句说明要检索用户stone所创建的Table1表:SELECT * FROM stone.Table1 在SQL语句中不限定数据库对象所有者时,SQL Server 2000将首先在数据库中查找属于当前用户的数据库对象。如果查找不到,则再查找属于dbo的数据库对象。如果再次查找失败,SQL Server 2000认为数据库中无此数据库对象,从而结束该语句的执行,并向用户报告错误信息。

  28. 8.2.1 特殊的数据库用户 3.guest用户 guest用户是SQL Server 2000数据库中的一个特殊用户,当某个SQL Server 2000登录账户在数据库中没有建立对应的数据库用户,而又要访问该数据库时,SQL Server 2000就查找数据库中是否存在guest用户。若存在该用户,就允许该登录账户使用guest用户的权限访问数据库,否则将拒绝其访问。SQL Server 2000系统数据库master和tempdb中的guest用户账户不能被删除,而其他数据库中的guest用户均可被创建或删除。

  29. 8.2.2 创建数据库用户 1.使用SQL语句 在SQL Server 2000中,为Windows用户或用户组和SQL Server 2000登录账户建立数据库用户的方法相同,可以通过执行系统存储过程sp_grantdbaccess实现。其基本语法格式为: sp_grantdbaccess [@loginname=]‘<登录账户>' [,[@name_in_db=]'<数据库用户名>']

  30. 8.2.2 创建数据库用户 例8-6 为sttone-i5p0laxy域中的用户adminofdb在student数据库中建立同名的数据库用户。

  31. 8.2.2 创建数据库用户 例8-7 为SQL Server 2000登录账户login1在数据库student中建立名为user1的数据库用户。

  32. 8.2.2 创建数据库用户 2.使用SQL-EM (1) 启动SQL-EM,展开左侧窗口中指定的数据库,单击“用户”结点,右侧窗口显示当前数据库用户的信息。

  33. 8.2.2 创建数据库用户 (2) 鼠标指向左侧窗口中“用户”结点,单击右键,打开快捷菜单,选择“新建数据库用户”命令,打开“数据库用户属性—新建用户”对话框。 (3) 在“登录名”下拉列表框中选择登录名,在“登录名”文本框中输入用户名,并设置该用户所属的角色。单击“确定”按钮,完成新用户的建立。

  34. 8.2.3 删除数据库用户 1.使用SQL语句 数据库用户可以通过执行系统存储过程sp_revokedbaccess实现删除。其基本语法格式为: sp_revokedbaccess [@name_in_db=]'<数据库用户名>' 系统存储过程sp_revokedbaccess只能删除当前数据库中的用户,其他数据库中的同名用户并不受影响,并且不能删除的用户和角色包括:public角色、数据库中的固定角色、dbo或INFORMATION_SCHEMA用户、master和tempdb数据库中的guest用户账户以及Windows NT组中的用户。

  35. 8.2.3 删除数据库用户 例8-8 删除student数据库中的用户user1。

  36. 2.使用SQL-EM (1) 启动SQL-EM,展开左侧窗口中指定的数据库,单击“用户”结点,指向右侧窗口中要删除的数据库用户,单击右键,打开快捷菜单,选择“删除”命令,打开“确认删除数据库用户”对话框。 (2) 单击“是”按钮,完成数据库用户的删除。

  37. 8.3 设置访问数据的权限—角色管理 8.3.1 管理固定服务器角色 8.3.2 管理数据库角色

  38. 固定服务器角色 权限 sysadmin 可在SQL Server中执行任何活动 serveradmin 可设置服务器范围的配置选项,关闭服务器 setupadmin 可管理链接服务器和执行某些系统过程 securityadmin 可管理登录和CREATE DATABASE权限,读取错误日志和更改密码 processadmin 可以管理在 SQL Server 中运行的进程。 dbcreator 可以创建、更改和删除数据库。 diskadmin 可以管理磁盘文件。 bulkadmin 可以执行 BULK INSERT 语句。 8.3.1 管理固定服务器角色 1.固定服务器角色

  39. 8.3.1 管理固定服务器角色 2.向固定服务器角色中添加成员 (1) 使用SQL语句。 向固定服务器角色中添加成员,可以通过执行系统存储过程sp_addsrvrolemember实现。其基本语法格式为: sp_addsrvrolemember [ @loginame = ] '<登录账户名>' , [@rolename =] '<角色名>'

  40. 8.3.1 管理固定服务器角色 例8-9 在student数据库中,把登录账户login1添加到固定服务器角色sysadmin中。

  41. 8.3.1 管理固定服务器角色 2.向固定服务器角色中添加成员 (2) 使用SQL-EM。 ①启动SQL-EM,展开左侧窗口中指定数据库服务器的“安全性”文件夹,单击“服务器角色”结点,则可以显示出固定服务器角色。

  42. 8.3.1 管理固定服务器角色 ②指向右侧窗口中要添加成员的固定服务器角色,单击右键,打开快捷菜单,选择“属性”命令,打开“服务器角色属性”对话框。

  43. 8.3.1 管理固定服务器角色 ③单击“添加”按钮,打开“添加成员”对话框。 ④选择要添加的登录账户,单击“确定”按钮,完成添加成员。

  44. 8.3.1 管理固定服务器角色 3.从固定服务器角色中删除成员 (1) 使用SQL语句。 删除固定服务器角色的成员,可以通过执行系统存储过程sp_dropsrvrolemember实现。其语句基本语法格式为: sp_dropsrvrolemember [ @loginame = ] '<登录账户名>' , [ @rolename = ] '<角色名>'

  45. 8.3.1 管理固定服务器角色 例8-10 把登录账户login1从固定服务器角色sysadmin中删除。

  46. 8.3.1 管理固定服务器角色 3.从固定服务器角色中删除成员 (2) 使用SQL-EM ①启动SQL-EM,展开左侧窗口中指定数据库服务器的“安全性”文件夹,单击“服务器角色”结点,指向右侧的窗口要删除成员的固定服务器角色,单击右键,打开快捷菜单,选择“属性”命令,弹出“服务器角色属性”对话框。 ②单击“删除”按钮,再单击“确定”按钮,完成成员的删除。

  47. 固定数据库角色 权限 db_owner 在数据库中有全部权限 db_accessadmin 可添加或删除用户 db_securityadmin 可管理全部权限、对象所有权、角色和角色成员 db_ddladmin 可以添加、修改和删除数据库中的对象 db_backupoperator 可对数据库进行备份 db_datareader 可查看数据库内任何用户表中的所有数据 db_datawriter 可更改数据库内任何用户表中的所有数据 db_denydatareader 不能查看数据库中的数据 db_denydatawriter 不能更改数据库中的数据 8.3.2 管理数据库角色 1.固定数据库角色 • SQL Server 2000还有一个特殊的数据库角色——public,数据 库中的每个用户都属于public数据库角色,这个角色是不能删除 的。

  48. 8.3.2 管理数据库角色 2.建立用户自定义数据库角色 (1) 使用SQL语句。 创建用户自定义数据库角色可以通过执行系统存储过程sp_addrole实现。其基本语法格式为: sp_addrole [@rolename=]'<角色名>'[,[@ownername=]'<所有者>']

  49. 8.3.2 管理数据库角色 2.建立用户自定义数据库角色 只有固定服务器角色sysadmin和固定数据库角色db_owner 、 db_securityadmin的成员,才能执行这一系统存储过程创建用户 自定义数据库角色。 (1) 使用SQL语句 例8-11 在student数据库中添加角色role1。 创建角色后,可以使用GRANT、DENY、REVOKE语句设置角色的 数据库访问权限。

  50. 8.3.2 管理数据库角色 2.建立用户自定义数据库角色 (2) 使用SQL-EM。 ①启动SQL-EM,展开左侧窗口中指定的数据库,单击“角色”结点,则可以看到固定数据库角色。

More Related