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

Oracle系统权限与对象权限

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

查询已授予的对象权限(即某个用户对哪些表对哪些用户开放了对象权限)

sql> conn scott/scott

sql> select * from user_tab_privs_made; --下面是scott用户开放的对象权限

  

查询列上开放的对象权限

sql> select * from user_col_privs_made;

  ?

查询已接受的对象特权(即某个用户被授予了哪些表上的哪些对象特权)

sql> select * from user_tab_privs_recd;

  

查询用户已接受列的对象权限

sql> select * from user_col_privs_recd;

  

收回对象权限

使用revoke 语句收回权限

使用with grant option 子句所分配的权限同样被收回

revoke {privilege [,privilege...]|all} --on object --from {user[,user...]|role|public} -- [cascade constraints];--收回权限

?

cascade constraints

为处理引用完整性时需要

?对于要回收查询/修改列的权限,可以直接怼表级进行回收,不需要到具体列。

SQL> conn /as sysdba;

Connected.

SQL> revoke select on scott.emp from test;

Revoke succeeded.

SQL> revoke update(sal,mgr) on scott.emp from test;

revoke update(sal,mgr) on scott.emp from test

* ERROR at line 1:

ORA-01750: UPDATE/REFERENCES may only be REVOKEd from the whole table,not by column

SQL> revoke update on scott.emp from test;

Revoke succeeded.

  

其它

检查dba权限的用户

select * from dba_role_privs where granted_role=‘dba‘;

  

查看用户具有的系统权限:

select * from session_privs;

  

总结

使用create user语句创建用户,alter user语句修改用户,其语法大致相同 drop user username [cascade] 会删除用户所拥有的所有对象及数据。

系统权限允许用户在数据库中执行特定的操作,如执行ddl语句。

with admin option 使得该用户具有将自身获得的权限授予其它用户的功能。 但收回系统权限时,不会从其它帐户级联取消曾被授予的相同权限。

对象权限允许用户对数据库对象执行特定的操作,如执行dml语句。

with grant option 使得该用户具有将自身获得的对象权限授予其它用户的功能 但收回对象权限时,会从其它帐户级联取消曾被授予的相同权限。

系统权限与对象权限授予时的语法差异为对象权限使用了on object_name 子句。

public 为所有的用户

all:对象权限中的所有对象权限

(编辑:东莞站长网)

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