oracle用户与权限管理
创建用户
CREATE USER 用户名 IDENTIFIED BY 密码
DEFAULT TABLESPACE 表空间
TEMPORARY TABLESPACE 临时表空间
QUOTA 空间配额大小 ON 表空间
PASSWORD EXPIRE
ACCOUNT LOCK | UNLOCK
除了用户名和密码,其它可选
建议一个用户对应一个单独的表空间
修改用户
-- DBA指定用户名和密码
ALTER USER 用户名 IDENTIFIED BY 新密码;
-- 当前用户修改自己的密码
PASSWORD 用户名;
-- 锁定用户
ALTER USER 用户名 ACCOUNT LOCK;
-- 修改用户默认表空间、临时表空间、配额无限制
ALTER USER 用户名 DEFAULT TABLESPACE 新表空间名 TEMPORARY TABLESPACE 新临时表空间名 QUOTA UNLIMITED ON 新表空间名;
删除用户
DROP USER 用户名;
-- 级联删除相关数据对象
DROP USER 用户名 CASCADE;
查询用户
-- 查看有哪些用户及其默认表空间
select username,default_tablespace from dba_users;
-- 查看表空间有哪些用户
select distinct owner,tablespace_name from dba_segments;
-- 查询表空间对应的数据文件,用户和表空间对应关系
select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id;
授权
-- WITH ADMIN OPTION使用户可以再授权
grant 权限1,权限2, ... TO 用户1,用户2, ... [WITH ADMIN OPTION];
-- 指定对象
GRANT 对象权限1,对象权限2, ... ON 对象 TO 用户1,用户2, ... [WITH ADMIN OPTION];
撤销授权
REVOKE 权限1,权限2, ... FROM 用户1, 用户2, ...
-- 指定对象
REVOKE 对象权限1,对象权限2, ... ON 对象 FROM 用户1,用户2, ... [WITH ADMIN OPTION];
-- 收回所有权限
REVOKE ALL ON 对象 FROM 用户名;
查看授权
-- 查询用户的系统权限
select username,privilege,admin_option from user_sys_privs;
-- 查询用户具有的对象权限
select grantee,privilege,grantor,table_name,grantable from dba_tab_privs where grantee='user1';
角色
可以将角色简单理解为用户组。常用角色有connect、resource、dba,这是系统自带的角色。
对于新创建的用户,可以授予connect和resource以基本权限。
创建角色
craete role role_name;
删除角色
drop role role_name;
为角色增删权限
grant 权限 to 角色名;
revoke 权限 from 角色名;
查看角色
-- 查看所有角色
select role from dba_roles;
-- 查看用户所拥有的角色和默认角色
select granted_role,default_role from dba_role_privs where grantee='user_name';
-- 查看指定角色拥有的系统权限
select privilege,admin_option from role_sys_privs where role='role_name';
常用权限
用户和角色相关
权限
说明
create user
创建用户的权限
create role
创建角色的权限
alter user
修改用户的权限
alter any role
修改任意角色的权限
drop user
删除用户的权限
drop any role
删除任意角色权限
概要文件相关
权限
说明
create profile
创建概要文件的权限
alter profile
修改概要文件
drop profile
删除概要文件
同义词相关
权限
说明
create any synonym
为任意用户创建同义词的权限
create synonym
为用户创建同义词
drop public synonym
删除公共同义词
drop any synonym
删除任意同义词
表空间相关
权限
说明
create tablespace
创建表空间
alter tablespace
修改xxx
drop tablespace
删除xxx
unlimited tablespace
对表空间大小不加限制的权限
表相关
权限
说明
select any table
查询任意表的权限
select table
查询用户表
update any table
修改任意表数据
update table
修改用户表数据
delete any table
删除任意表数据
delete table
xxx
create any table
为任意用户创建表
create table
xxx
drop any table
删除任意表
alter any table
修改任意表
alter table
xxx
索引相关
权限
说明
create any index
为任意用户创建索引
drop any index
xxx
alter any index
xxx
会话相关
权限
说明
create session
创建会话
alter session
xxx
视图相关
权限
说明
create any view
为任意用户创建视图
create view
xxx
drop any view
xxx
select view
xxx
update view
xxx
delete any view
xxx
delete view
xxx
序列相关
权限
说明
create any sequence
为任意用户创建序列
create sequence
xxx
alter sequence
xxx
drop any sequence
xxx
drop sequence
xxx
select any sequence
xxx
select sequence
xxx
子程序相关
权限
说明
create any procedure
为任意用户创建存储过程
create procedure
xxx
create any trigger
为任意用户创建触发器
alter procedure
xxx
alter any trigger
xxx
execute any procedure
执行任意存储过程
execute procedure
xxx
execute function
执行函数
execute package
执行包
drop any procedure
xxx
drop trigger
xxx