oracle,2011-7-13之oracle权限角色第四篇

. oracle sys system 用户的区别
sysOracle数据库中权限最高的帐号,具有create database的权限,
而system没有这个权限,sys的角色是sysdba,system的角色是sysoper。
其余就是他们两个用户共有的权限了:
startup/shutdown/dba两个用户都是可以管理的。平时用system来管理数据库就可以了。这个用户的权限对于普通的数据库管理来说已经足够权限了。
. 查看权限和角色
ORACLE中数据字典视图分为3大类, 用前缀区别,分别为:USER,ALL 和 DBA,许多数据字典视图包含相似的信息。
USER_*: 有关用户所拥有的对象信息,即用户自己创建的对象信息
ALL_*: 有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息
DBA_*:有关整个数据库中对象的信息
(这里的*可以为TABLES, INDEXES, OBJECTS, USERS等)。
比如:只知道scott用户的密码,需要查看一下scott的一些信息
7.1、查scott用户的创建时间、用户状态、使用的默认表空间、临时表空间等信息
SQL> conn scott/admin
已连接。
SQL>select * from user_users;
另:select * from all_users;(scott用户可以访问其他数据库用户对信息的用户名)
另:select * from all_users;(所有数据库的用户信息,各用户的密码、状态、默认表空间、临时表空间等)
7.2、查看scott用户自己拥有什么角色
SQL> select * from user_role_privs;
另:没有all_role_privs这个视图
另:select * from dba_role_privs(所有数据库用户具有哪些角色,这个视图只有dba角色的权限才可以查询)
7.3、查看scott用户自己具有什么的权限
SQL> select * from session_privs;
7.4、查看scott用户具有什么的系统权限呢
SQL>select * from user_sys_privs;
另:没有all_sys_privs视图
另:select * from dba_sys_privs;(所有数据库用户、角色所用于的系统权限)
7.5、查看scott用户中,都哪些用户把对象授予给scott用户呢(读取其他用户对象的权限)
SQL>select * from user_tab_privs;
另:select * from all_tab_privs; select * from dba_tab_privs;
7.6、查看scott用户中拥有的resource角色都具有什么权限呢
SQL> select * from role_sys_privs where role='RESOURCE';
7.7、scott用户自己拥有多少的表
SQL>select * from user_tables;
另:select * from all_tables; 其他用户所拥有的表
另:select * from dba_tables;数据库中所有用户的表
7.8、查看scott用户已经使用多大的空间,允许使用的最大空间是多少
SQL> select tablespace_name,bytes,max_bytes from user_ts_quotas;
另:select * from dba_ts_quotas;(所有的数据库用户在每个表空间已使用的空间,最大空间)
7.9、把自己的表赋予给其他用户
SQL>grant select on emp to mzl;
查看都把哪些表什么权限赋予了其他用户
SQL>select * from user_tab_privs_made
7.10、把表的某一列操作权限赋予给其他用户
SQL>grant update(job) on emp to mzl;
注:查看数据库中所有的角色select * form. dba_roles;
7.11、sys授予scott用户dba角色
SQL> conn /as sysdba
已连接。
SQL> grant dba to scott;
授权成功。
另:如果这样
SQL> grant dba to scott with admin option;
授权成功。
scott用户就可以把dba的权限授予给其他的用户了。
7.12 sys回收scott用户的dba角色
SQL> revoke dba from scott;
撤销成功。
Tags: 

延伸阅读

最新评论

发表评论