数据库系统概论 第四章 数据库安全性(权限、用户、角色)

本文详细介绍了数据库的安全性控制,包括授权(GRANT)和回收(REVOKE)操作,以及如何创建和管理数据库用户及权限。GRANT用于授予用户对特定数据库对象的操作权限,而REVOKE则用于撤销这些权限。此外,还讨论了数据库角色的概念,如何创建、授权、撤销角色权限,以及角色间的权限传递。通过角色管理,可以更有效地控制和管理数据库的访问权限。
摘要由CSDN通过智能技术生成

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。

1.数据库安全性控制

1.1 授权(Authorization)与回收

1.1.1 GRANT

GRANT语句的一般格式为

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

  其语义为:将对指定操作对象的指定操作权限授予指定的用户,发出该GRANT语句的可以是DBA,也可以是该数据库对象创建者(即属主Owner),也可以是已经拥有该权限的用户。接受权限的用户可以是一个或多个具体用户,也可以是PUBLIC,即全体用户。
  如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予其他的用户。如果没有指定WITH GRANT OPTION子句,则获得某种权限的用户只能使用该权限,不能传播该权限。
【例】

/*把对Student表和Course表的全部操作权限授予用户U2和U3。*/
GRANT ALL PRIVILEGES
ON TABLE Student,Course
TO U2,U3;/*也可以使用PUBLIC表示所有用户*/
/*把对表SC的INSERT权限授予U5用户,并允许将此权限再授予其他用户。*/
GRANT INSERT
ON TABLE SC
TO U5
WITH GRANT OPTION;

1.1.2 REVOKE

授予的权限可以由DBA或其他授权者用REVOKE语句回收,REVOKE语句的一般格式为

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

【例】

	/*把用户U4修改学生学号的权限收回*/
	REVOKE UPDATE(Sno)
	ON TABLE Student
	FROM U4;
	/*收回所有用户对表SC的查询权限*/
	REVOKE SELECT
	ON TABLE SC
	FROM PUBLIC;

1.1.3 创建数据库模式的权限(创建数据库用户)

  GRANT和REVOKE语句向用户授予或收回对数据的操作权限。对数据库模式的授权则由DBA在创建用户时实现。
  创建用户CREATE USER语句一般格式如下:

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

  对CREATE USER语句说明如下

  • 只有系统的超级用户才有权创建一个数据库用户。
  • 新创建的数据库用户由三种权限:CONNECT,RESOURCE和DBA.
  • CREATE USER命令中如果没有指定创建的新用户的权限,默认该用户拥有CONNECT权限。拥有CONNECT权限的用户不能创建新用户,不能创建模式,也不能创建基本表;只能登录数据库。然后由DBA或其他用户授予他应有的权限,根据获得的权限情况他可以对数据库对象进行权限范围内的操作。
  • 拥有RESOURCE权限的用户能创建基本表和视图,称为所创建对象的属主。但是不能创建模式,不能创建新的用户。数据库对象的属主可以使用GRANT语句把该对象上的存取权限授予其他用户。
  • 拥有DBA权限的用户是系统中的超级用户,可以创建新的用户、创建模式、创建基本表和视图等。DBA拥有所有数据库对象的存取权限,还可以把这些权限授予一般用户。
    在这里插入图片描述

1.2 数据库角色

  数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。

1.2.1 角色的创建

CREATE ROLE <角色名>

刚刚创建的角色是空的,没有任何内容。可以用GRANT为角色授权。

1.2.2 给角色授权

GRANT <权限> [,<权限>]...
ON <对象类型> <对象名>
TO <角色> [,<角色>]...

DBA和用户可以利用GRANT语句将权限授予某一个或几个角色。

1.2.3 将一个角色授予其他的角色或用户

GRANT <角色1> [,<角色2>]...
TO <角色3> [,<用户1>]...
[WITH ADMIN OPTION]

该语句把角色授予某用户,或授予另一个角色,这样,一个角色所拥有的权限就是授予它的全部角色所包含的权限的总和。
如果指定了WITH ADMIN OPTION子句,则获得某种权限的角色或用户还可以把这种权限再授予其他的角色。

1.2.4 角色权限的收回

REVOKE <权限> [,<权限>]...
ON <对象类型> <对象名>
FROM <角色> [,<角色>]...
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值