• 授予和撤销权限
• 创建和管理角色
1、权限
用户权限有两类:
• 系统:允许用户在数据库中执行特定的操作
• 对象:允许用户访问和操纵特定的对象
“权限”是用于执行特定类型的SQL 语句或访问其他用户的对象的一种权限。Oracle DB 可以控制用户在数据库中能够(或无法)执行的操作。
权限可分为以下两种类别:
• 系统权限:每种系统权限都允许用户执行一个特定的数据库操作或一类数据库操作。
例如,创建表空间的权限就是一种系统权限。系统权限可由管理员授予,或者由被显式授权其管理权限的用户授予。有一百多种不同的系统权限。很多系统权限都包含
ANY子句。
• 对象权限:用户可以使用对象权限对特定对象(如表、视图、序列、过程、函数或程序包)执行特定的操作。在没有特定权限的情况下,用户只能访问他们自己拥有的对象。对象权限可以由对象的所有者或管理员授予,也可以由被显式授予了权限,可以为其他人员分配对某个对象的权限的人员授予。
2、系统权限
要授予系统权限,请单击“Edit User(编辑用户)”页上的“Systems Privileges(系统权限)”选项卡。从可用权限列表中选择适当的权限,然后通过单击“Move(移动)”箭头将其移至“Selected System Privileges(选定的系统权限)”列表中。
使用ANY子句授予权限意味着权限可以跨越方案。例如,如果具有CREATE TABLE权限,则可以创建表,但只能在自己的方案中创建。使用SELECT ANY TABLE权限就可从其他用户拥有的表中进行选择。
SYS用户和具有DBA角色的用户被授予了所有ANY权限;因此,它们可以对任何数据对象执行任何操作。
可以使用Oracle Database Vault 选件来控制ANY系统权限的作用域。
如果选中了“Admin Option(管理选项)”复选框,则用户可以管理权限并将系统权限授予给其他用户。
授予系统权限的SQL 语法如下:
GRANT <system_privilege> TO <grantee clause> [WITH ADMIN OPTION]
例如:
grant create session to emi;
grant create session to emi with admin option;
在授予系统权限之前仔细考虑安全要求。某些系统权限通常只能授予给管理员:
• RESTRICTED SESSION:使用这个权限可以登录,即使数据库是在受限模式下打开时也是如此。
• SYSDBA和SYSOPER:使用这两个权限可以在数据库中执行关闭、启动、恢复及其它管理任务。
用户使用SYSOPER可执行基本操作任务,但不能查看用户数据。
这个权限包括以下系统权限:
- STARTUP和SHUTDOWN
- CREATE SPFILE
- ALTER DATABASE OPEN/MOUNT/BACKUP
- ALTER DATABASE ARCHIVELOG
- ALTER DATABASE RECOVER(仅限完全恢复。任何形式的不完全恢复,如UNTIL TIME|CHANGE|CANCEL|CONTROLFILE,都需要以SYSDBA身份建立连接。)
- RESTRICTED SESSION
除此之外,SYSDBA系统权限还允许执行不完全恢复和删除数据库。用户使用SYSDBA系统权限可以SYS用户身份有效地建立连接。
• SYSASM:使用此权限可以启动、关闭和管理ASM 实例。
• DROP ANY对象:用户使用DROP ANY权限可删除其他用户拥有的对象。
• CREATE、MANAGE、DROP和ALTER TABLESPACE:这些权限允许进行表空间管理,包括创建、删除和更改表空间的属性。
• CREATE LIBRARY:Oracle DB 允许开发人员在PL/SQL 内创建和调用外部代码(例如C 库)。此库必须由数据库中的LIBRARY对象指定。CREATE LIBRARY权限允
许用户创建可从PL/SQL 执行