创建用户
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 |
参考
- 《Oracle数据库从入门到运维实战》。作者:甘长春、孟飞