C/C++教程

[oracle]用户与权限管理

本文主要是介绍[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';

角色

可以将角色简单理解为用户组。常用角色有connectresourcedba,这是系统自带的角色。
对于新创建的用户,可以授予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]用户与权限管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!