数据库安全性控制..
关系数据库系统中的存取权限
授权与回收
• 创建登录账号
• • • • • • • • • • • • • • 可以通过CREATE LOGIN语句创建登录账号。格式如下: CREATE LOGIN login_name {WITH option_list1 | FROM sources} sources定义为: WINDOWS [WITH windows_options [,...]] option_list1定义为: PASSWORD = 'password' [ MUST_CHANGE ] [,option_list2 [ ,...]] option_list2定义为: DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language | CHECK_EXPIRATION = { ON | OFF} | CHECK_POLICY = { ON | OFF} windows_options定义为: DEFAULT_DATABASE = database| DEFAULT_LANGUAGE = language
数据库安全性 Yusncun@
• 问题的提出 –数据库的一大特点是数据可以共享 –但数据共享必然带来数据库的安全性问题 –数据库系统中的数据共享不能是无条件的共 享
数据库保护概况
• 数据库破坏类型
– – – – – – – – 人为破坏; 对数据操作引入的数据错误。 系统错误; 并发执行引起数据不一致; 人为破坏 ── 数据库安全; 对数据操作引入的数据错误 ── 数据库完整性。 系统错误── 故障恢复; 并发执行引起数据不一致 ── 并发控制;
• 例, 把对Student表和Course表的全部权 限授予用户U2和U3
GRANT ALL ON Student, Course TO U2, U3;
• ALL在有些DBMS中错误,有些DBMS在 on后只能有一个数据库对象。
• 例,把查询sc表和修改学生成绩的权限授 给用户U4
– – – GRANT UPDATE(grade), SELECT ON Sc TO U4;
• 例,
– CREATE LOGIN log1 WITH PASSWORD = '000000',DEFAULT_DATABASE = test
删除登录账号
使用T-SQL语句删除登录账号 使用T-SQL语句DROP LOGIN删除登录 账号。其基本格式如下: DROP LOGIN login_name
常用存取控制方法
• 自主存取控制(Discretionary Access Control ,简称DAC)
– C2级 – 灵活
• 强制存取控制(Mandatory Access Control,简称 MAC)
– B1级 – 严格
1. 自主存取控制方法
• 自主存取控制就是由用户(如数据库管 理员)自主控制对数据库对象的操作权 限,哪些用户可以对哪些对象、进行哪 些操作,完全取决于用户之间的授权。 • 通过 SQL 的 GRANT 语句和 REVOKE 语句实现
关系数据库系统中存取控制对象
对象类型 数据库 对象 模式 基本表 模式 视图 索引 数据 数据 基本表和视图 属性列 CREATE SCHEMA CREATE TABLE,ALTER TABLE CREATE VIEW CREATE INDEX SELECT,INSERT,UPDATE,DELETE,REFERENCES, ALL PRIVILEGES SELECT,INSERT,UPDATE, REFERENCES ALL PRIVILEGES 操作类型
例,DROP LOGIN log1
数据库用户账号管理
使用T-SQL语句创建用户账号 其基本格式如下:
CREATE USER user_name [ { { FOR | FROM } { LOGIN login_name } | WITHOUT LOGIN ] [ WITH DEFAULT_SCHEMA = schema_name ]
• 发出GRANT:
– DBA – 数据库对象创建者(即属主Owner) – 拥有该权限的用户
• 按受权限的用户
– 一个或多个具体用户 – PUBLIC(全体用户)
• WITH GRANT OPTION子句:
– 指定:可允许循环授权
例, 把查询Student表权限授给用户U1 • GRANT SELECT • ON Student • TO U1
• 各种类型的保护措施
数据库安全性控制
高
安全性控制层次
低
用户
DBMS
OS
DB
用户标识 和鉴定
存取控制 审计 视图
操作系统 安全保护
密码存储
数据库安全性控制的常用方法
• • • • • 用户标识和鉴定 存取控制 视图 审计 密码存储
(一) 用户标识与鉴别
• 系统提供的最外层安全保护措施
– 软件验证技术:口令验证、问/答验证等技 术; – 硬件验证技术:指纹验证、声音识别验证、 手写签名验证、手型几何验证和身份卡验证 等技术。
• 在实际运用中,可根据需要选择其中的 一种或多种技术进行用户验证。
(二) 存取控制
• DBMS规定用户想要操作DB中的数据,必 须拥有相应的权限。 • DBMS将授权结果存放入数据字典。 • 当用户提出操作请求时,DBMS会根据数 据字典中保存的授权信息,判断用户是 否有权对相应对象进行操作,若无权则 拒绝执行操作。
• 例, DBA把在数据库S_C中建立表的权限授 予用户U7 • create schema test authorization u7;
• 例, CREATE USER u1 FOR LOGIN log1
删除用户账号
• 使用T-SQL语句删除用户账号
– DROP USER u1
授权
GRANT语句的一般格式: GRANT <权限>[,<权限>]... [ON <对象类型> <对象名>] TO <用户>[,<用户>]... [WITH GRANT OPTION]; 权限 (特权) 指定能够进行的数据操作和可操作的数据 的限定的范围.