加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle系统权限与对象权限

发布时间:2021-01-24 12:59:04 所属栏目:站长百科 来源:网络整理
导读:oracle权限分为: 系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等。 对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等。 ? 系统权限 超过一百多种有效的权限(查询约209种) SQL select count(*) fr
副标题[/!--empirenews.page--]

oracle权限分为:

系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等。

对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等。

?

系统权限

超过一百多种有效的权限(查询约209种)

SQL> select count(*) from system_privilege_map;

  COUNT(*)
----------
       209

  

数据库管理员具有高级权限以完成管理任务,例如:

– 创建新用户

– 删除用户

– 删除表

– 备份表

?

常用的系统权限:

create session 创建会话

create sequence 创建序列

create synonym 创建同名对象

create table 在用户模式中创建表

create any table 在任何模式中创建表

drop table 在用户模式中删除表

drop any table 在任何模式中删除表

create procedure 创建存储过程

execute any procedure 执行任何模式的存储过程

create user 创建用户

drop user 删除用户

create view 创建视图

?

授予系统权限

grant privilege [,privilege...] to user [,user| role,public...] [with admin option];

  

选项:

public 所有用户都有的角色

with admin option 使用户同样具有分配权限的权利,可将此权限授予别人

?

授予系统权限

1、创建用户...

2、授权

?

例:

链接到会话,创建表

grant create session,create table to test01;

  

创建表并且可以授权其他用户

grant create session to test01 with admin option;

  

注:

1)如果使用WITH ADMIN OPTION为某个用户授予系统权限,那么对于被这个用户授予相同权限的所有用户来说,取消该用户的系统权限并不会级联取消这些用户的相同权限。

2)系统权限无级联,即A授予B权限,B授予C权限,如果A收回B的权限,C的权限不受影响;系统权限可以跨用户回收,即A可以直接收回C用户的权限。?

?

执行任意存储过程权限

grant execute any procedure to test01;

  

注: execute any procedure 不能和 create any procedure 授权统一普通用户

授权所有用户dba

grant dba to public --不能做的哈。。

移除所有用户的dba权限

revoke dba from public --不能做的哈。

?

使用系统权限

创建test用户,默认表空间test,授权创建会话、链接数据库权限

create user test identified by test default tablespace test;

grant create session,connect to test;

  

使用表空间权限

grant unlimited tablespace to test; --授权可以使用默认表空间的权限

conn itpux/itpux --链接会话

create table itpuxt1 as select * from user_tables; --在默认表空间创建表

 ?

显示系统权限

dba_sys_privs --针对所有用户被授予的系统权限

user_sys_privs --针对当前登陆用户被授予的系统权限

?

查看所有系统权限:

select * from system_privilege_map;

  

显示用户所具有的系统权限:

select * from dba_sys_privs;

  

显示当前用户所具有的系统权限:

select * from user_sys_privs;

  

显示当前会话所具有的系统权限:

select * from session_privs;

  

在sys用户下查TEST用户的权限

select * from dba_sys_privs where grantee=‘TEST‘;

select * from dba_sys_privs where grantee in (‘TEST‘,‘SYSTEM‘) ;

select * from dba_sys_privs where grantee in (‘TEST‘,‘SYSTEM‘) order by grantee ;

  ?

收回系统权限

赋予系统权限

grant create table to test;

  

收回赋予的系统权限

revoke create table from test;

  

注意:对于使用with admin option 为某个用户授予系统权限,那么对于被这个用户授予相同权限的所有用户来说,取消该用户的系统权限并不会级联取消这些用户的相同权限

?

对象权限

不同的对象具有不同的对象权限

对象的拥有者拥有所有权限

对象的拥有者可以向外分配权限

oracle一共有8种对象权限

?

Oracle系统权限与对象权限

对象授权

grant object_priv|all [(columns)] on object to {user|role|public} [with grant option];

all:所有对象权限

public:授给所有的用户

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读