本文主要是介绍[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 |
参考
- 《Oracle数据库从入门到运维实战》。作者:甘长春、孟飞
这篇关于[oracle]用户与权限管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!