5.12学习总结

数据库原理第十一章 安全管理

11.1安全控制概述

数据库的安全控制是指在数据库应用系统的不同层次提供对有意和无意损害行为的安全规范

对有意的非法活动可采用加密存、取数据的方法控制;

对有意的非法操作可使用用户身份验证、限制操作权来控制;

对无意的损坏可采用提高系统的可靠性和数据备份等方法来控制。

11.1.1安全控制模型

11.1.2SQL Server安全控制过程

SQL Server自主存取控制模型中,用户访问数据库的三个安全认证过程:

1.确认用户是否是服务器客户端的合法账户(具有登录名)

2.确认用户是否是所访问的数据库的合法用户(是数据库用户)

3.确认用户是否具有合适的操作权限(权限认证)

11.2登录名

11.2.1身份验证登录:

Windows身份验证登录

1、Windows验证模式:利用了Windows本身具备的管理登录、 验证用户合法性的能力,允许SQL Server用户登录时使用Windows的用户名和口令。 

混合身份验证登录

2、混合验证模式:混合验证模式接受Windows授权用户和SQL授权用户。如果不是Windows操作系统的用户也希望使用SQL Server,那么应该选择混合验证模式。

11.2.2建立登录名

方法:

1.SSMS工具通过图形化方法实现

2.通过T-SQL语句实现

 

用T-SQL语句建立数据库用户

CREATE USER user_name FOR|FROM LOGIN login_name user_name:指定在此数据库中用于识别该用户的名称。 LOGIN login_name:指定要映射为数据库用户的SQL Server登录名。 如果省略FOR LOGIN,则新的数据库用户将被映射到同名的SQL Server登录名。

11.3.2 删除数据库用户

删除数据库用户,实际就是解除了登录名和数据库用户之间的映射关系。 删除数据库用户之后,其对应的登录名仍然存在。 删除方法: 展开“数据库”“students”“安全性”“用户”节点。 在要删除的用户名上右击鼠标,选择“删除”命令。

用T-SQL语句删除数据库用户

语句 DROP USER user_name 其中user_name为要在此数据库中删除的用户名。 示例.删除SQL_User2用户。 DROP USER SQL_User2

11.4 管理权限

权限种类

对象权限 是对表、视图等对象中数据的操作权。 语句权限 创建对象的权限。 隐含权限 指由SQL Server预定义的服务器角色、数据库角色、数据库拥有者和数据库对象拥有者所具有的权限。

数据库用户的分类

系统管理员 在数据库服务器上具有全部的权限。 SQL Server 的默认系统管理员是“sa”。 数据库对象拥有者 创建数据库对象的用户即为数据库对象拥有者。 数据库对象拥有者对其所拥有的对象具有全部权限。 普通用户 只具有对数据库数据的增、删、改、查权限。

11.4.2 权限的管理

授予权限:允许用户或角色具有某种操作权 收回权限:不允许用户或角色具有某种操作权,或者收回曾经授予的权限。 拒绝权限:拒绝某用户或角色具有某种操作权,既使用户或角色由于继承而获得这种操作权,也不允许执行相应的操作。

授权语句

GRANT 权限名 [ , … ] ON { 表名 | 视图名 } TO {数据库用户名| 用户角色名 } [ , … ]

收权语句

REVOKE 权限名 [ , … ] ON { 表名|视图名 } FROM { 数据库用户名|用户角色名 } [ , … ]

拒绝语句

DENY 权限名 [ , … ] ON {表名|视图名 } TO {数据库用户名|用户角色名 } [ , … ]

例1.为用户user1授予Student表的查询权。 GRANT SELECT ON Student TO user1

例2.为用户user1授予SC表的查询权和插入权。 GRANT SELECT,INSERT ON SC TO user1

例3.收回用户user1对Student表的查询权。 REVOKE SELECT ON Student FROM user1

例4.拒绝user1用户具有SC表的更改权。 DENY UPDATE ON SC TO user1

11.5 角色

为便于对用户及权限的管理,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为角色(Role)。 SQL Server中,角色分为:

固定的服务器角色 :

按照从最低到最高级别角色的顺序: Bulkadmin:可以运行BULK INSERT语句。这条语句允许从文本文件中将数据导入到SQL Server 2008数据库中,为需要执行大容量插入到数据库的域账户而设计。(最低级别) Dbcreator:可以创建、更改、删除和还原任何数据库。不仅是适合助理DBA的角色,也可能是适合开发人员的角色。 Diskadmin:用于管理磁盘文件,比如镜像数据库和添加备份设备。它适合助理DBA。 Processadmin:2008能够多任务化,即可以通过执行多个进程做多个事件。例如,2008可以生成一个进程用于向高速缓存写数据,同时生成另一个进程用于从高速缓存中读取数据。这个角色的成员可以结束(在SQL Server 2008中称为删除)进程。

固定的数据库角色:微软提供了9个内置的角色: db_owner:该角色的用户可以在数据库中执行任何操作。 db_accessadmin:可以从数据库中增加或者删除用户。 db_backupopperator:该角色的成员允许备份数据库。 db_datareader:该角色的成员允许从任何表读取任何数据。 db_datawriter:该角色的成员允许往任何表写入数据。 db_ddladmin:允许在数据库中增加、修改或者删除任何对象(即可以执行任何DDL语句)。 用户自定义的角色

用T-SQL语句建立用户定义的角色

CREATE ROLE role_name [ AUTHORIZATION owner_name ] role_name:待创建角色的名称。 AUTHORIZATION owner_name:将拥有新角色的数据库用户或角色。如果未指定用户,则执行CREATE ROLE的用户将拥有该角色。

sp_droprolemember [ @rolename = ] 'role' , [ @membername = ] 'security_account' [@rolename = ]'role':将从中删除成员的数据库角色名。 [@membername =]'security_account':被从数据库角色中删除的用户名。 例7.删除Admin角色中的SQL_User2成员。 EXEC sp_droprolemember 'Admin','SQL_User2'

posted @ 2023-05-12 17:55  代不动码  阅读(122)  评论(0)    收藏  举报