创建角色以简化安全模型的设置和维护。它是一组可以授予用户的相关权限的命名组。当数据库中有很多用户时,很难授予或撤销用户的权限。因此,如果您定义角色:
- 您可以授予或撤销用户权限,从而自动授予或撤销权限。
- 您可以创建角色或使用预定义的系统角色。
授予系统角色的一些权限如下:
System Roles | Privileges granted to the Role |
---|---|
Connect | Create table, Create view, Create synonym, Create sequence, Create session etc. |
Resource | Create Procedure, Create Sequence, Create Table, Create Trigger etc. The primary usage of the Resource role is to restrict access to database objects. |
DBA | All system privileges |
创建和分配角色 –
首先,(数据库管理员)DBA 必须创建角色。然后 DBA 可以为角色分配权限,为角色分配用户。
句法 –
CREATE ROLE manager;
Role created.
在语法中:
‘manager’ 是要创建的角色的名称。
- 现在角色已创建,DBA 可以使用 GRANT 语句为角色分配用户以及为角色分配权限。
- 通过角色向用户授予或撤销权限比直接为每个用户分配权限更容易。
- 如果角色由密码标识,则 GRANT 或 REVOKE 权限必须由密码标识。
为角色授予权限 –
GRANT create table, create view
TO manager;
Grant succeeded.
为用户授予角色
GRANT manager TO SAM, STARK;
Grant succeeded.
撤销角色的特权:
REVOKE create table FROM manager;
删除角色:
DROP ROLE manager;
解释 –
首先它创建一个管理员角色,然后允许管理员创建表和视图。然后授予 Sam 和 Stark 管理人员的角色。现在 Sam 和 Stark 可以创建表和视图。如果用户被授予多个角色,他们将获得与所有角色关联的所有权限。然后使用 Revoke 从角色“manager”中删除创建表权限。使用 drop 从数据库中删除角色。