第10章 数据库操作权限的控制应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.SQL Server的安全性机制 . 的安全性机制 SQL Server安全性主体主要有三个级别,分别是:服务器级别、数据库级别、 架构级别。 (1)服务器级别所包含的安全对象主要有登录名、固定服务器角色等。其 中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服 务器权限。 SQL Server的登录名主要有两种:第一种是Windows登录名,第二种是SQL Server登录名。Windows登录名对应Windows验证模式,该验证模式所涉及的账户 类型主要有Windows本地用户账户、Windows域用户账户和Windows组。SQL Server登录名对应SQL Server验证模式,在该验证模式下,能够使用的账户类型主 要是SQL Server账户。 (2)数据库级别所包含的安全对象主要有用户、角色、应用程序角色、证 书、对称密钥、非对称密钥、程序集、全文目录、DDL事件、架构等。 用户安全对象是用来访问数据库的。如果某人只拥有登录名,而没有在相应 的数据库中为其创建登录名所对应的用户,则该用户只能登录数据库服务器,而 不能访问相应的数据库。
图10.9 授予用户数据库对象上的权限
1.创建登录名 . 首先创建登录名admins,以系统管理员身份登录SQL Server,新建一个查询 窗口,输入并执行如下语句: USE master GO CREATE LOGIN admins WITH PASSWORD='123456', DEFAULT_DATABASE=MBOOK 说明:以上语句中使用CREATE LOGIN语句 语句创建登录名,user1为登录名的名 语句 称,使用WITH 子句指定登录名的一些选项。PASSWORD关键字指定登录名的密 码,为123456;DEFAULT DATABASE选项指定登录后默认的数据库。
表10.2 管理员表(Administrator)数据
角 色 名 Admins user1 user2 密 码 备 注 123456 123456 123456 超级管理员 读者管理员 图书管理员
创建Administrator表可以通过界面方式或命令方式来完成,下面列出创建该 表的T-SQL语句,界面方式创建该表的方法请读者自行完成。 USE MBOOK GO CREATE TABLE Administrator ( 角色名 char(20) NOT NULL PRIMARY KEY, 密码 varchar(20) NOT NULL, 备注 varchar(100) NULL ) 表创建完后将表10.2中的数据添加到该表中。
说明:以上语句中使用GRANT语句 语句授予用户权限,GRANT关键字后面指定授 语句 予权限的名称,分别为查询、添加、修改、删除和建立外键约束。这些基本包含 了表中所有常用的权限。使用ON子句指定要授予权限的表,使用TO子句指定被 授予权限的对象。 语句;如果要撤销用户已有的权限, 如果要拒绝用户的权限,可以使用DENY语句 语句 可以使用REVOKE语句 语句。 语句
图10.7 添加为db_owner数据库角色的成员
添加完成后,可以在MBOOK数据库“安全性”→“角色”→“数据库角色” 目录下打开“db_owner”的属性窗口,在“角色成员”栏下可以看到该数据库角 色的成员列表,其中包含了用户admins,如图10.8所示。 功能测试:使用登录名admins以SQL Server验证模式连接SQL Server,读者可以 发现,此时只能操作MBOOK数据库,而无法操作SQL Server中的其他数据库。
图10.8 数据库角色db_owner的成员列表
(2)为用户user1分配能够管理读者信息表TReader的权限。通过赋予用户 数据对象上的权限来实现,具体步骤如下。 以系统管理员身份连接到SQL Server服务器,在“对象资源管理器”中选择 MBOOK数据库的TReader表,用鼠标右键单击,选择“属性”菜单项进入TReader 表的属性窗口,选择“权限”选项卡。单击“搜索”按钮,在弹出的“选择用户 或角色”窗口中单击“浏览”按钮,选择需要授权的用户user1,选择后单击 “确定”按钮回到表属性窗口。在该窗口中选择user1,在权限列表的“授予” 复选框中选择需要授予的权限,由于需要授予用户对TReader表的所有权限,所 以这里全选所有权限,如图10.9所示,单击“确定”按钮完成授权。
2.创建MBOOK的数据库用户 .创建 的数据库用户 首先创建与登录名admins相关联的数据库用户,名为admins。以系统管理 员身份登录SQL Server,新建一个查询窗口,输入并执行如下语句: USE MBOOK GO CREATE USER admins FOR LOGIN admins 说明:以上语句中使用CREATE UESR语句 语句在MBOOK数据库下创建数据库用户, 语句 admins为用户名,使用FOR LOGIN子句指定相关联的登录名,这里指定为登录名 admins。
图10.6 新建数据库用户账户admins
3.分配图书管理权限 . (1)首先为图书管理数据库用户admins分配图书管理数据库的超级管理员 角色成员的方式来完成。具体 权限,即MBOOK数据库的所有权限,通过添加为角色 角色 步骤如下。 以系统管理员身份连接到SQL Server服务器,在“对象资源管理器”中展开 “数据库”→“MBOOK”→“安全性”→“用户”→选择数据库用户“admins”, 双击或用鼠标右键单击选择“属性”菜单项,打开“数据库用户”对话框。 在打开的对话框中,在“常规”选项卡中的“数据库角色成员身份”栏,选 择固定数据库角色db_owner,如图10.7所示,单击“确定”按钮完成添加。之后 用户admins就可以拥有与数据库角色db_owner相同的权限,即执行MBOOK数据 库的所有管理操作的权限。
图10.4 使用登录名admins连接SQL Server
图10.5来自百度文库新建立的连接
2.创建MBOOK的数据库用户 .创建 的数据库用户 以系统管理员身份连接SQL Server,展开“数据库”→“MBOOK”→“安全 性”→用鼠标右键单击“用户”,选择“新建用户”菜单项,进入“数据库用户 -新建”对话框。在“用户名”框中填写数据库用户名admins,“登录名”框中 填写能够登录SQL Server的登录名admins。注意:一个登录名在本数据库中只能 创建一个数据库用户。填写“默认架构”为dbo,如图10.6所示,单击“确定” 按钮完成创建。
3.分配图书管理权限 . (1)首先通过将数据库用户admins添加为db_owner固定数据库角色成员的 方法使用户admins具有操作MBOOK数据库的所有权限。 新建一个查询窗口,输入并执行如下语句: USE MBOOK GO EXEC sp_addrolemember 'db_owner', 'admins' 说明:以上语句中通过EXEC语句执行系统存储过程 系统存储过程sp_addrolemember将用 系统存储过程 户admins添加为数据库角色db_owner的成员,该存储过程有两个参数,前者为 数据库角色名,后者为要添加的数据库用户名。 (2)为用户user1分配能够管理读者信息表TReader的权限。 在查询窗口中执行如下语句: USE MBOOK GO GRANT SELECT, INSERT, UPDATE, DELETE, REFERENCES ON TReader TO user1
10.1 10.2
图书管理系统权限的提出 图书管理系统权限的实现 知识点链接
L10.1 L10.2
图书管理权限的分配 图书管理权限的实现
根据SQL Server的安全性机制 的安全性机制,要将图书管理系统中的管理权限应用到图书 的安全性机制 管理数据库中,首先需要在SQL Server数据库中创建登录名,然后根据登录名在图 书管理数据库MBOOK中创建用户账户,之后给这些账户授予不同的权限。在使用 不同的登录名连接SQL Server时这些用户账户将会拥有不同的操作权限。 根据本图书管理系统的设计要求,本书设计了3类图书管理员:超级管理员、 读者管理员和图书管理员。超级管理员(命名为admins)拥有所有权限,读者管 理员(命名为user1)只能操作读者信息,图书管理员(命名为user2)只能操作 图书信息。因此需要创建的账户名为admins、user1和user2。
图10.1 选择身份验证模式
(2)创建登录名admins,在“对象资源管理器”中选择“安全性”目录下 的“登录名”项,用鼠标右键单击,在弹出的快捷菜单中选择“新建登录名”, 如图10.2所示。
图10.3 “登录名-新建”对话框
(3)使用登录名admins连接SQL Server。具体步骤如下。 在“对象资源管理器”窗口中单击“连接”下拉框,选择“数据库引擎”, 弹出“连接到服务器”对话框。在该对话框中,“身份验证”选择“SQL Server身 份验证”,“登录名”填写admins,输入密码123456,如图10.4所示,单击“连 接”按钮,就能连接SQL Server了。登录后的“对象资源管理器”界面如图10.5所 示。
在打开的“服务器属性”窗口中选择“安全性”选项卡。选择服务器身份验 证为“SQL Server和Windows身份验证模式”,如图10.1所示。单击“确定”按钮, 保存新的配置,然后在“对象资源管理器”窗口中用鼠标右键单击SQL Server服 务器图标,选择“重新启动”菜单项重启SQL Server服务即可。
L1.SQL Server的安全性机制 1.SQL Server安全性管理 . 安全性管理 (1)对用户登录进行身份验证。当用户登录到数据库系统时,系统对该用 户的账户和口令进行验证,包括确认用户账户是否有效以及能否访问数据库系统。 SQL Server 2008的身份验证模式是指系统确认用户的方式,分为两种。 Windows验证模式:用户登录Windows时进行身份验证,登录SQL Server时就 不再进行身份验证。必须将Windows账户加入到SQL Server中,才能采用Windows 账户登录SQL Server。 SQL Server验证模式:在SQL Server验证模式下,SQL Server服务器要对登录 的用户进行身份验证。当SQL Server在Windows操作系统上运行时,系统管理员 设定登录验证模式的类型可为Windows验证模式和混合模式。当采用混合模式时, SQL Server系统既允许使用Windows登录名登录,也允许使用SQL Server登录名登 录。 (2)对用户进行的操作进行权限控制。当用户登录到数据库后,只能对数 据库中的数据在允许的权限内进行操作。
10.2.1 界面方式分配图书管理权限 1.创建登录名 . 首先创建登录名admins,采用SQL Server验证模式。创建的步骤如下。 (1)首先应将验证模式设置为混合模式。以系统管理员的身份登录SQL Server Management Studio,在“对象资源管理器”中选择要登录的SQL Server服 务器图标,用鼠标右键单击,在弹出的快捷菜单中选择“属性”菜单项,打开 “服务器属性”窗口。
(3)架构级别所包含的安全对象主要有表、视图、函数、存储过程、类型、 同义词、聚合函数等。 架构的作用简单地说是将数据库中的所有对象分成不同的集合,这些集合没 有交集,每一个集合就称为一个架构。数据库中的每一个用户都会有自己的默认 架构。这个默认架构可以在创建数据库用户时由创建者设定,若不设定则系统默 认架构为dbo。数据库用户只能对属于自己架构中的数据库对象执行相应的数据操 作。至于操作的权限则由数据库角色所决定。例如,若某数据库中的表A属于架构 S1,表B属于架构S2,而某用户默认的架构为S2,如果没有授予用户操作表A的权 限,则该用户不能对表A执行相应的数据操作。但是,该用户可以对表B执行相应 的操作。
为了保存管理员的信息以便在登录图书管理系统时使用,需要在图书管理数 据库MBOOK中创建一个管理员表Administrator,表的结构如表10.1所示,表中数 据如图10.2所示。 表10.1 管理员表(Administrator)结构
字 段 名 角色名 密码 备注 类型与宽度 char(20) varchar(20) varchar(100) 是否主键 √ × × 是否允许空值 × × √ 说 明 主键
相关文档
最新文档