Oracle 权限常用语句【转】
创建用户并赋予该用户授权权限。
create user ken identified by ken;
授予权限并附带admin option
grant create session, create table to ken with admin option;
授予权限,不带with admin option
grant create view to ken;
新建tom用户
create user tom identified by tom;
使用ken用户登录后对tom授权, 语句执行成功
回收权限grant create session, create table to tom;Grant succeeded.对tom授权,语句执行失败grant create view to tom;grant create view to tom*ERROR at line 1:ORA-01031: insufficient privileges
note 注意,回收权限不是级联的。
从ken回收登录权限
revoke create session from ken;
此时tom依然可以登录,但Ken无法登录了
常用的Object Privilegealterdeleteselectinsertupdateindexreferencesexecute查看系统中的Object PrivilegeERROR:ORA-01045: user KEN lacks CREATE SESSION privilege; logon denied
查看某用户具有的Object Privilegeselect distinct privilege from dba_tab_privs;
授予人可以是该对象所有者或者sys和system用户。select grantor, owner, table_name, privilege from dba_tab_privs where grantee = 'TOM';
授予所有权限grant select on t to tom
授予列权限grant all on emp to monkey;
授予对于某个包的执行权限grant update on emp(sal) to monkey
在别的schema中建立索引,必须具备以下权限grant execute on dbms_transaction to ken;
回收对象权限grant index on scott.emp to blake;
revoke select on emp from blake
note 回收Object Privilege 会导致级联回收。
角色角色Role,定义一组权限。
查询角色具备的权限select * from role_sys_privs where role='角色名'
select * from role_sys_privs where role='CONNECT';
DBA角色select * from role_sys_privs where role='RESOURCE';
dba角色具有所有的系统权限,及with admin option选项,默认的dba用户为sys和system,它们可以将任何系统权限授予其他用户。但是要注意的是dba角色不具备sysdba和sysoper的特权(启动和关闭数据库)
note 一般而言,创建用户后,给与connect角色和resource就够了。
自定义角色建立角色(不验证)create role 角色名 not identified;
建立角色(数据库验证)
角色授权create role 角色名 identified by 密码;
分配角色grant create session to 角色名 with admin optiongrant select on scott.emp to 角色名;grant insert, update, delete on scott.emp to 角色名;
grant 角色名 to blake with admin option;
select * from dba_roles;
select privilege, admin_option from role_sys_privs where role='角色名';
select granted_role, default_role from dba_role_privs where grantee = '用户名';
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。