一、查看oracle用户、角色信息
1、查看所有用户
select * from all_users; select * from user_users;
2.查看用户或角色系统权限
select * from user_sys_privs;
3.查看角色包含的权限
select * from role_sys_privs order by role;
4.查看用户对象权限:
select * from all_tab_privs; select * from user_tab_privs;
5.查看用户或角色所拥有的角色
select * from user_role_privs;
二、oracle创建用户、角色、授权和建表
1、创建用户
oracle内部有两个建好的用户:system和sys。用户可直接登录到system用户以创建其他用户,因为system具有创建别的用户的权限。 在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。
语法[创建用户]: create user 用户名 identified by 口令[即密码];
例子: create user test identified by test;
语法[更改用户]: alter user 用户名 identified by 口令[改变的口令];
例子: alter user test identified by 123456;
2、删除用户
语法:drop user 用户名;
例子:drop user test;
若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。
语法: drop user 用户名 cascade;
例子: drop user test cascade;
3、授权角色
oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba.
-- 授权命令
语法: grant connect, resource to 用户名;
例子: grant connect, resource to test;
-- 撤销权限
语法: revoke connect, resource from 用户名;
列子: revoke connect, resource from test;
4、创建/授权/删除角色
除了前面讲到的三种系统角色----connect、resource和dba,用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,用户必须具有create role系统权限。
-- 创建角色
语法: create role 角色名;
例子: create role testRole;
-- 授权角色
语法: grant select on class to 角色名;
列子: grant select on class to testRole;
注:现在,拥有testRole角色的所有用户都具有对class表的select查询权限
-- 删除角色
语法: drop role 角色名;
例子: drop role testRole;
注:与testRole角色相关的权限将从数据库全部删除
三、oracle用户与表空间关系
oracle中用户的所有数据都是存放在表空间中的,很多个用户可以共用一个表空间,也可以指定一个用户只用某一个表空间。
表空间:创建表空间会在物理磁盘上建立一个数据文件,作为数据库对象(用户、表、存储过程等等)的物理存储空间;
用户:创建用户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间;创建用户后,可以在用户上,创建表、存储过程等等其他数据库对象;
表:是数据记录的集合;
创建过程: 表空间--->用户--->表;
所属关系: 表空间包含用户包含表;
--创建数据表空间 create tablespace CICI logging datafile 'D:oraclexeapporacleoradataCICICICI.DBF' size 32m autoextend on next 32m maxsize 2048m extent management local; --创建用户并指定表空间 CREATE USER cici IDENTIFIED BY cici PROFILE DEFAULT DEFAULT TABLESPACE CICI ACCOUNT UNLOCK; -- 为用户赋予权限 GRANT connect, resource TO cici; GRANT create session to cici;