数据库的安全性

数据库的特点之一就是由数据库管理系统提供统一的数据保护功能来保证数据的安全可靠和正确有效。数据库的数据保护功能主要包括数据的安全性完整性

数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要技术指标之一。


数据库的不安全因素
1、非授权用户对数据库的恶意存取和破坏。
数据库管理系统提供的安全措施主要包括用户身份鉴别存取控制视图等技术。
2、数据库中重要或敏感的数据被泄露。
数据库管理系统提供的主要技术有强制存取控制数据加密存储加密传输等。
有些安全性要求较高的部门提供审计功能。
3、安全环境的脆弱性。
操作系统安全的脆弱,网络协议安全保障的不足等都会造成数据库安全性的破坏。


数据库安全性控制

在一般计算机系统中,安全措施是一级一级层层设置的。用户要求进入计算机系统时,系统首先根据输入的用户标识进行用户身份鉴定。对已进入系统的用户,数据库管理系统还要进行存取控制。操作系统也有自己的保护措施;数据最后还会以密码的形式存取到数据库中。


存取控制

数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限。
存取控制机制主要包括定义用户权限和合法权限检查两部分。
(1)定义用户权限:用户对某一对象的操作权利称为权限。这些定义经过编译后存储在数据字典中,被称为安全规则或授权规则。
(2)合法权限检查:每当用户发出存取数据库的操作请求后,数据库管理系统就会查找数据字典,根据安全规则进行合法权限检查,若用户的操作请求超过了定义的权限,系统将拒绝执行此操作。

定义用户权限合法权限检查机制一起构成了数据库管理系统的存取控制子系统。
C2级数据库管理系统还支持自主存取机制,B1级数据库支持强制存取控制


自主存取控制方法

自主存取控制主要通过SQL的GRANT语句和REVOKE语句来实现。
用户权限由两个因素构成:数据库对象、操作类型。
定义存取权限称为授权。
存取控制的对象不仅有数据本身(基本表中的数据,属性列上的数据),还有数据库模式(包括数据库、基本表、视图和索引的创建等)。


授权:授予与收回
GRANT语句用于向用户授予权限,REVOKE语句收回已授予用户的权限。
GRANT语句的一般格式

GRANT <权限>[,<权限>]...
ON <对象类型><对象名>[,<对象类型><对象名>]...
TO <用户>,[,<用户>]...
[WITH GRANT OPTION];

发出GRANT语句的可以是数据库管理员,也可以是该数据库对象的创建者,还可以是已拥有该权限的用户。接受权限的用户可以是一个或多个具体的用户,也可以是PUBLIC,即全体用户。
如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予其他的用户。注意,不允许循环授权,即被授权者不能把权限再授回给授权者或者祖先。
例:
将查询Student表的权限授予用户U1。

GRANT SELECT
ON TABLE Student
TO U1;

把对Student表和Course表的全部操作权限授予用户U2和U3。

GRANT ALL PRIVILEGES
ON TABLE Student,Course
TO U2,U3;

把对表SC的INSERT权限授予用户U5,并允许将此权限再授予其它用户。

GRANT INSERT
ON TABLE SC
TO U5
WITH GRANT OPTION;

REVOKE

授予用户的权限可以由数据库管理员或其它授权者用REVOKE语句收回。
REVOKE语句的一般格式为

REVOKE <权限> [,<权限>]...
ON <对象类型><对象名>[,<对象类型><对象名>]...
FROM <用户> [,<用户>]...[CASCADE|RESTRICT];

例:
将用户U5对SC表的INSERT权限收回。

REVOKE INSERT
ON TABLE SC
FROM U5

注:级联CASCADE收回了U6和U7的INSERT权限,否则系统将拒绝执行该命令。
有的数据库管理系统默认值为RESTRICT,将自动执行级联操作,如果U6或U7还从其它用户处获得对SC表的INSERT权限,则它们仍然具有此权限,系统只收回直接或间接从U5处获得权限。


创建数据库模式的权限

CREATE USER <username>[WITH][DBA|RESOURCE|CONNECT];

说明:
(1)只有系统的超级用户才有权创建一个新的数据库用户。
(2)新创建的数据库用户有三种权限:CONNECT、RESOURCE和DBA。

CREATE USER命令中如果没有指定创建新用户的权限,默认该用户拥有CONNECT权限。拥有CONNECT权限的用户不能创建新用户,不能创建模式,也不能创建基本表,只能登录数据库。

拥有RESOURCE权限的用户能创建基本表和视图,成为所创建对象的属主,但不能创建模式,不能创建新的用户。数据库对象的属主可以使用GRANT语句将该对象上的存取权限授予其它用户。

拥有DBA权限的用户是系统中的超级用户,可以创建新的用户、创建模式、创建基本表和视图等:DBA拥有对所有数据库对象的存取权限,还可以把这些权限授予一般用户。

注意:CREATE USER语句不是SQL标准。

权限与可执行的操作对照表

拥有权限可否执行的操作可否执行的操作可否执行的操作可否执行的操作
CREATE USERCREATE SCHEMACREATE TABLE登录数据库执行数据库的查询与操作
DBA可以可以可以可以
RESOURCE不可以不可以可以可以
CONNECT不可以不可以不可以可以,但必须拥有相应的权限
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值