数据库——安全管理

目标

1 理解安全控制的基本概念
2 了解SQL Server 2008 的
3 掌握SQL server 2008 的安全控制实现方式
4 了解oracle 的安全管理

数据库安全性不同于数据的完整性

安全性:保护数据以防止不合法用户故意造成破坏(保证用户被允许做其想做的事情)
完整性:保护数据以防止合法用户无意中造成的破坏。(确保用户事情是正确的)

1 数据库安全控制的目标
保护数据受意外或故意的丢失,破坏或滥用
2 数据库安全的威胁
安全计划需要考虑:可用性损失,机密性数据损失,私密性损失,偷窃和欺诈意外的损害
3 安全控制模型
包括四个阶段
身份验证(用户)
操作权限(数据库应用程序与数据库管理系统)
文件操作控制(操作系统)
加密存储于冗余(数据库)
4 授权和认证
认证是一种鉴定用户身份的机制。授权是将合法访问数据库或数据库对象的权限予用户的过程。包括认证用户对对象的访问请求
DBMS 通常采用自主存取控制 和 强制存储控制两种方案 来解决安全控制问题

自主存取控制

又称自主安全模式,通过SQL 的 GRANT,PEVOKE ,DENY语句来实现
权限种类:维护权限予操作(语句权限予对象权限)
用户分类:系统管理员(sa),数据库对象拥有者,普通用户。

存取控制

避免自主存取模式下数据的‘无意泄露’,采取强制存取控制
DBMS 将全部实体分为主体和客厅两大类
主体:系统活动主体,实际用户和进程
客体:被动实体,受主体操纵,包括文件,基本表,视图

对于主体和客体,DBMS 为他们每个实例派一个敏感标记
敏感度标记:DBMS 指派,主体为许可证级别,客体为密级。
分绝密,秘密,可信和公开等若干级别

强制存取控制遵循如下规则:
仅当主体许可证级别大于或等于客体密级,主体可以读取相应客体
仅当主体许可证级别等于客体密级,该主体才能写相应客体

审计跟踪

审计跟踪实质是在一种特殊的文件或数据库,系统自动记录用户对常规数据的所有操作。
审计跟踪对数据安全有辅助作用

统计数据库的安全性

统计数据提供基于各种不同标准的统计信息或汇总数据
统计数据库安全系统用户控制统计数据库的访问
统计数据库允许用户查询聚合类型的信息 如总和,平均,但不允许 查询个人信息

身份验证模式
window 身份验证模式
SQL Server 通过Windows 操作系统获得用户信息,验证登录名,一般推荐

混合身份验证模式
Windows 授权用户和SQL 授权用户可以登录

登录账户
两类:
SQL Server 自身身份证验证的账户,内置系统账户与yoghurt自己创建
登录到SQL Server 的Windows 网络账户,可以是组账户或用户账户

建立登录账户:
CREATE LOGIN login_name
修改登录账户属性
ALTER LOGIN login_name
删除账户:
DROP LOGIN login_name
在这里插入图片描述
数据库用户
用户有了登录账户只能连接到SQL 服务器,并不具有访问数据库的权限
映射:让登录账户称为数据库用户的操作成为映射
一个登录账户可以映射为多个数据库用户,默认情况下,新建数据库只有一个用户dbo,数据库用户的拥有者

SQL Server 的安全机制

CREATE USER user_name[FOR|FROM]
LOGIN login_name
Guest 用户,特殊数据库用户,匿名访问,没有映射到登录账户的时候使用
Guest用户,特殊数据库用户,匿名访问,没有映射到登录账户的时候使用
GRANT CONNECT TO guest
REVOKE CONNECT TO guest

删除数据库
DROP UESR user_name

权限管理

登录账户合法成为合法用户后没有任何权限操作,就需要为用户授予数据库及其对象的操作权限

(1)对象级别的权限(6种)
SELECT ,INSERT,UPDATE,DELETE,REFERENCES,EXECUTE

授权语句:
GRANT 对象权限,ON 对象TO (主体:数据库用户名或角色) [WITH GRANT OPTION]
实例:
GRANT SELECT ON Addres TO abc
GRANT EXECUTE ON OBJECT …HR.EI to abc
GRANT REFERENCES (Employeel) ON vEmp
TO abc WITH GRANT OPTION

拒绝权限
DENY 对象权限 ON 对象 TO (主体:数据库用户名或角色) [CASCADE][AS主体]
DENY SELECT ON Addres TO abc
DENY EXECUTE ON OBJECT …HR.EI to abc
DENY REFERENCES (Employeel) ON vEmp
TO abc CASCADE

收全语句
REVOKE 对象权限 ON 对象 TO (主体:数据库用户名或角色) [CASCADE][AS 角色]
REVOKE SELECT ON Addres TO abc
REVOKE EXECUTE ON OBJECT …HR.EI to abc
REVOKE REFERENCES (Employeel) ON vEmp
TO abc CASCADE

语句级别的权限
CREATE
DATABASE | PROCEDURE | TABLE | VIEW | FUNCTION
BACKUP DATABASE | LOG
在这里插入图片描述
角色:
一组具有相同权限的用户就是角色
SQL Server 2008 中 角色分为预定以的系统角色和用户角色两种
系统角色有分为固定服务器角色(服务器级角色)和固定数据库角色(数据库角色)
用户角色军事数据库级角色

固定服务器角色
Bulkadmin:执行BULK INSERT 语句权限。
Dbcreator: 创建,修改,删除还原数据库权限
Diskadmin:具有管理磁盘文件的权限
Securitydamin:专门管理登录账户,读取错误日志执行CREATE DATABASE 权限账户,便捷
Serveradmin:服务器级别的配置选项和关闭服务器权限
Setupadmin: 添加删除链接服务器
Sysadmin:系统管理员,Windows 超级用户自动映射为系统管理员
Public:系统预定义服务器角色,每个登录名都是这个角色的成员,没有授予或拒绝特定权限,则将具有这个角色权限

例:
在这里插入图片描述
固定数据库角色
定义在数据库级别上,存在每个数据中,每用户加入固定数据库角色就具有数据库角色权限。
Db_accessadmin: 添加或删除数据库权限
Db_backupoperator :备份数据库,日志权限
Db_datareader:查询数据库权限
Db_datawriter:具有插入,删除,更改权限
Db_ddladmin: 执行数据定义权限
Db_denydatareader:不允许具有查询数据库中所有用户数据的权限
Db_denydatawriter:不允许具有插入,删除,更改数据库中所有数据权限
Db_owner:具有全部操作权限,包括配置,维护,删除数据库
Db_securityadmin:具有管理数据库角色,角色成员以及数据中语句和对象权限
在这里插入图片描述
用户定义的角色
用户定义的角色属于数据库一级
用来简化使用数据库是的权限管理
用户定义的角色可以是用户角色或数据库用户
注意:角色中的成员具有的权限 =成员自身权限 + 所在角色权限,但若某个权限在角色中被拒绝,则成员不再拥有

创建用户定义角色:CREATE ROLE
删除用户定义角色:DROP ROLE

Oracle 的安全机制分为数据级别的安全控制 表级,列级,行级的安全控制
数据库级的安全性通过用户身份认证和授予用户相应系统权限来保证
表级,列级,行级的安全性 通过授予或回收对象权限保证,支持集中式,分布式,跨平台应用

Oralce 系统通常设置两级安全管理员:
全局集:负责管理,协调,维护全局数据一致性和安全性
场地级:负责本结点数据库安全性,用户管理,系统特权与角色管理

用户与资源管理
按权限大小划分为DBA 用户和普通用户
DBA 用户有DBMS 自动创建 ,sys 与system 用户,拥有全部系统特权

建立用户:
CREATE USER use1 IDENTIFIED BY 123456 DEFAULT TABLESPACE student (系统在 student 表空间)
QUOTA 5M ON student(限制使用空间为5M)

管理用户和资源
DBA特权用户可以改变一个用户资源使用限额,弥漫,登录次数等
ALTER USER use1
QUOTA 60M ON student (限制使用空间60M)
ALTER USER use1 IDENTIFIED BY 12345678

删除用户
DROP USER
DROP USER user1 CASCADE(删除用户及其所拥有的全部对象)

权限管理
(1)系统特权
三种默认特权:
Connect :不能建立任何对象们可以查询数据字典及访问数据库对象
Recourse: 可建立数据库对象(表,视图,索引…)
DBA :拥有预定义的全部权限

对象特权
用户维护表级,行级,列级数据的安全性
在这里插入图片描述

发布了12 篇原创文章 · 获赞 0 · 访问量 242

猜你喜欢

转载自blog.csdn.net/inventertom/article/details/104820109