一、Oracle用户
系统用户:sys/system
sys:超级管理员,有最高权限:sysdba角色,有create database 权限;
system:管理操作员,权限很大,sysoper 角色,没有create database权限;
-- 查询用户 --
select * from dba_users; --查看数据库中所有的用户 --具有dba权限
select * from all_users; --查看你能管理的所有用户
select * from user_users; --查看当前用户信息
select username from all_users where username='SYSTEM'; --查询指定用户是否存在
-- 创建用户 --
-- 注意:在12C中 CDB 中创建用户必须C##开头;
create user zhangsan identified by 123456; --创建时不指定表空间和临时表空间,会使用默认的
create user C##SHEN identified by 123456 default tablespace WUXIA temporary tablespace WUXIATEMP;(CDB)
create user ZHEN identified by 123456 default tablespace ZHAN temporary tablespace ZHENTEMP; (PDB)
-- 删除用户 --
drop user user_name ; --删除用户
drop user user_name cascade; --删除用户cascade级联删除(连同用户下对象一起删除)
--修改用户信息--
alter user user_name identified by 新密码;
注:密码带符号时,修改密码加双引号;
-- 查询用户相关信息 --
select * from all_tables where owner='SYSTEM'; -- 查询用户下的所有表 ---
select table_name from user_tables; --查询当前用户的表 --
select username,sid,serial# from v$session ; --查看用户的连接状况--
select * from session_privs; 查看权限
select * from dba_sys_privs; 系统权限
select * from dba_tab_privs; 对象权限
select * from role_tab_privs; 包含授予角色的对象权限
select * from role_sys_privs;包含授予角色的系统权限
select * fomr dba_sys_privs where grantee='resource'; 查看角色的权限
二、角色和权限
权限:系统权限,对象权限:
系统权限:
显示系统权限:select * from system_privilege_map;
授权一般是dba完成,用户授权要具有grant any privillege 的系统权限
授权:grant 权限 to 用户;
grant create session,create table to shen with admin option ; 加这个用户可以是角色授权其他用户
回收系统权限:revoke create session from shen;
常见系统权限:create session 连接数据库,create view 建视图 create table 建表
对象权限:
显示对象权限: select distinct privilege from dba_tab_privs;
授权:grant 对象权限 on 数据库对象 to 用户名 [with grant option][,角色名]
回收:revoke 对象权限 on 数据库对象 from 用户名
角色:权限的集合;
常见的预定义角色:connect,resource,dba;
一般用户,只要给用户授予connect和resource角色
connect 角色:create session 连接权限
权限:create cluster create database link create session
alter session create table create view create sequence
resource角色:一般权限:
权限:create cluster create procedure create table
dba角色:
dba角色具有所有的系统权限,及with admin option选项,默认的dba用户为sys和system,他们将任何系统权限授予其他用户,注意dba角色不具备sysdba,sysoper(启动,关闭数据库)
显示角色:select * from dba_roles;