授权分为:授予者(grantor)被授予者(grantee)
授予和撤销权限
权限分为:系统权限和对象权限
一、系统权限
系统权限约有200种,大多数都影响数据字典的操作。常用的权限如下:
CREATE SESSION (创建会话) --允许用户连接
RESTRICTED SESSION(受限制的会话) --如果使用STARTUP RESTRICT 启动数据库,或者使用ALTER SYSTEM ENABLE RESTRICTED SESSION 进行调整,则仅拥有此权限的用户可以连接。
ALTER DATABASE (更改数据库) --允许访问多个修改物理结构所需的命令
ALTER SYSTEM (更改系统)--允许控制实例参数和内存结构
CREATE TABLESPACE (创建表空间) --ALTER TABLESPACE 和 DROP TABLESPACE 权限允许用户管理表空间
CREATE TABLE(创建表) --需要更改和删除表,在其上允许SELECT和DML 命令,以及在其上创建、更改或删除索引。
GRANT ANY OBJECT PRIVILEGE (授予任何对象权限) --允许被授权人将其本身不拥有的对象的对象权限授予他人,但不能授予自己。
CREATE ANY TABLE (创建任何表) --被授权人可以创建属于其他用户的表。
DROP ANY TABLE ( 删除任何表 )
INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE (插入任何表,更新任何表,删除任何表)
SELECT ANY TABLE(选择任何表) 被授权人可以对数据库中的任何表执行select操作。
1、授予权限的语法如下:
GRANT privilege [,privilege …] TO username;
创建用户账户以后,下面的命令将授予通常分配给用户(参与应用程序开发的用户)的系统权限;
Grant create session ,alter session, create table , create view, create synonym , create cluster,create database link , create sequence , create trigger, create type , create procedure, create operator TO username;
2、此语法的一个变体允许被授权人将权限传递给第三方,例如:
SQL>connect system/oracle;
SQL>grant create table to scott with admin option;
SQL>connect scott/tiger
SQL> grant create table to jonce;
注:如果用户被授予带有ADMIN OPTION 的权限,那么即使对其做了撤销,他授予了权限的任何用户将保留权限。
系统权限的撤销不会级联(这与撤销对象权限不同)。
二、对象权限
对象权限允许针对表相关对象执行SELECT,INSERT,UPDATE和DELETE命令,也允许执行PL/SQL对象。
注:ANY权限针对数据库中的每个用户账户中的每个对象授权,是系统权限,而不是对象权限。
1、语法如下:
GRANT privilege ON [schema.]object TO username [WITH GRANT OPION];
EG. grant select on store.customers to scott;
变化包括ALL(将所有相关权限应用于对象类型),以及命名视图或表的特定列;
SQL> grant select on store.orders to scott;
SQL> grant update (order_status) on store.orders to scott;
SQL> grant all on store.regions to scott;
使用WITH GRANT OPTION,可使用户将其对象权限传给第三方。
三、撤销权限
撤销对象权限语法:
REVOKE privilege[,privilege…] on tablename from username;
撤销系统权限的语法:
REVOKE privilege[,privilege…] from username;
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。