Oracle 11g学习笔记(四)

☆樱花仙子☆ 提交于 2019-12-06 03:53:40

Oracle数据库将权限分为两大类:系统权限和对象权限。系统权限是在系统级对数据库进行存取和使用的机制。对象权限是指某一用户对其他用户的表、视图、序列、存储过程、函数、包等的操作权限。
授予系统权限
GRANT命令的语法如下:

GRANT system_privilege |role To user |role |PUBLIC [WITH ADMIN OPTION]

其中:
system_privilege:表示Oracle系统权限,系统权限是一组约定的保留字,如果能够创建表结构,则为CREATE TABLE;
role:角色
user:具体保留字,或者是一系列的用户。
PUBLIC:保留字,代表Oracle系统的所有所用户;
WITH ADMIN OPTION:表示被授权者可以将权限授予另外的用户。

示例:

授予连接和开发系统权限

grant connect,resource to wang

系统权限收回
REVOKE命令的语法

REVOKE system_privilege|role from user|role|public
REVOKE object_privilege|all on schema.object from user|role|public CASCADE CONSTRAINTS

其中
system_privilege:系统权限或角色;
object_privilege:对象的权限;
role:角色;
PUBLIC:保留字,代表Oracle系统所有的用户 ;
CASCADE CONSTRITRAINTS:表示有关联的权限也被撤销。

如果数据库管理员用GRANT命令给用户A授予系统权限时带有WITH ADMIN OPTION选项,则该用户A有权将系统权限再次授予另外的用户B。在这种情况下,如果数据库管理员用REVOKE命令撤销A用户的系统权限时,用户B的系统授权仍然有效。

示例:

如果用户wang具有ALTER TABLESPACE的系统权限,则将给权限撤销。

revoke alter tablespace from wang


从SCOTT用户撤销CREATE ANY INDEX的系统权限。

revoke CREATE ANY FROM SCOTT

授予对象权限
GRANT命令语法如下:

GRANT object_privilege|ALL column ON schema.object
TO user|role|public [WITH GRANT OPTION]|[WITH HIERARCHY OPTION]

其中,
object_privilege:表示对象的权限,可以是ALTER,EXECUTE,INDEX,INSERTRREFERENCES,SELECT,UPDATE;
Role:角色名;
user:被授予的用户名;
WITH ADMIN OPTION:表示被授予者可将系统权限授予其他的用户;
WITH HIERARCHY OPTION:在对象的字对象(在视图上在建立视图)上授权给用户。
撤销对象权限,REVOKE语句语法:

REVOKE object_privilege|ALL ON schema.object from user|role|public CASCADE CONSTRAINTS

其中:
object_privilege:表示对象的权限;
PUBLIC:保留字,代表Oracle系统的所有用户;
CASLCADE CONSTRAINTS:表示有关联的权限也被撤销。

Oralce 11g用于存放用户、系统权限、对象权限有关的数据字典。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!