千家信息网

Oracle 权限常用语句【转】

发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,http://www.cnblogs.com/ningvsban/p/3606239.html body { font-family: -apple-system, BlinkMacSystemFon
千家信息网最后更新 2024年12月13日Oracle 权限常用语句【转】http://www.cnblogs.com/ningvsban/p/3606239.html body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', 'HelveticaNeue-Light', 'Ubuntu', 'Droid Sans', sans-serif; font-size: 14px; line-height: 1.6; }

Oracle用户权限常用语句

常用的System Privileges

  • create session 连接数据库
  • create table 建表
  • create view 建视图
  • create public synonym 建同义词
  • create procedure 建过程、函数、包
  • create trigger 建触发器
  • create cluster 建簇

实例

创建用户并赋予该用户授权权限。

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无法登录了

ERROR: ORA-01045: user KEN lacks CREATE SESSION privilege; logon denied

常用的Object Privilege

  • alter
  • delete
  • select
  • insert
  • update
  • index
  • references
  • execute
查看系统中的Object Privilege

select distinct privilege from dba_tab_privs;

查看某用户具有的Object Privilege

select grantor, owner, table_name, privilege from dba_tab_privs where grantee = 'TOM';

授予人可以是该对象所有者或者sys和system用户。

grant select on t to tom

授予所有权限

grant all on emp to monkey;

授予列权限

grant update on emp(sal) to monkey

授予对于某个包的执行权限

grant execute on dbms_transaction to ken;

在别的schema中建立索引,必须具备以下权限

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';

select * from role_sys_privs where role='RESOURCE';

DBA角色

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 option grant 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 = '用户名';

0