惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
TaoSecurity Blog
TaoSecurity Blog
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
SegmentFault 最新的问题
T
Troy Hunt's Blog
N
News and Events Feed by Topic
雷峰网
雷峰网
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
PCI Perspectives
PCI Perspectives
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 三生石上(FineUI控件)
Schneier on Security
Schneier on Security
T
The Exploit Database - CXSecurity.com
L
LINUX DO - 最新话题
V
V2EX
T
Threat Research - Cisco Blogs
人人都是产品经理
人人都是产品经理
C
Cisco Blogs
The GitHub Blog
The GitHub Blog
爱范儿
爱范儿
I
Intezer
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
月光博客
月光博客
Recent Commits to openclaw:main
Recent Commits to openclaw:main
N
News | PayPal Newsroom
Cyberwarzone
Cyberwarzone
B
Blog
博客园 - 聂微东
P
Palo Alto Networks Blog
A
About on SuperTechFans
The Last Watchdog
The Last Watchdog
Scott Helme
Scott Helme
Google DeepMind News
Google DeepMind News
Webroot Blog
Webroot Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
O
OpenAI News
C
Check Point Blog
Hacker News: Ask HN
Hacker News: Ask HN
W
WeLiveSecurity
V
Vulnerabilities – Threatpost
博客园 - 【当耐特】
有赞技术团队
有赞技术团队
A
Arctic Wolf

博客园 - 停留的风

SpringBoot入门 【SQL实践】其他常用SQL汇总 2017年考研英语二真题与答案(最新) oracle基础教程(8)oracle修改字符集 Oracle 异常处理汇总 领域驱动(DD)目录 [开源项目]Hibernate基本使用 Oracle基本教程 系统架构研究目录 设计原则目录 Oracle 备份与还原 Oracle 物理备份--rman Oracle 使用SqlPlus管理 oracle 科普 Java基础--Java语言介绍 Java基础--serialVersionUID 开源项目学习历程 开源项目学习记录 Eclipse 常用快捷键
Oracle 用户管理与权限控制
停留的风 · 2015-12-30 · via 博客园 - 停留的风

Oracle 用户管理与权限控制

oracle数据库的权限系统分为系统权限与对象权限。系统权限( database system privilege )可以让用户执行特定的命令集。例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。对象权限( database object privilege )可以让用户能够对各个对象进行某些操作。例如delete权限允许用户删除表或视图的行,select权限允许用户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。 
  每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。 

ORACLE中数据字典视图分为3大类,用前缀区别,分别为:USER,ALL 和 DBA,
许多数据字典视图包含相似的信息。

USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息。
ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息。
DBA_*:有关整个数据库中对象的信息。 

一、用户管理

1、查询用户

select username from dba_users;

查询所有用户

查询当前用户信息:

结果:

系统用户:

sys;//系统管理员,拥有最高权限

system;//本地管理员,次高权限

scott;//普通用户,密码默认为tiger,默认未解锁

2、创建用户

create user username identified by password;

username: 用户名,自定义

password: 密码,自定义

3、删除用户

如果用户已经拥有自己的对象,则需要使用:cascade(级联)。可以强制删除用户的所有对象,然后删除用户。

drop user username cascade;

二、权限管理

1、授权

将权限授权给某个用户。

基本用法:

授权dba

示例:

授权连接和资源

grant connect,resource to demo;   //授权连接、资源

授权可创建session,可以在服务器上进行连接

grant create session to demo;

应用测试:

授权创建、查询、更新、删除表的权限:

grant create any table to demo; //创建表

grant drop any table to demo; //删除表

grant alter any table to demo; //修改表

授权执行存储过程:

grant execute any procedure to demo

授权数据权限:

grant insert any table to demo; //增加数据

grant delete any table to demo; //删除数据

grant update any table to demo; //更新数据

grant select any table to demo; //查询数据

授权具体的表权限:

grant select on demo.students on demo; //将查询students的权限授权给demo
grant update on demo.students to demo;

2、撤销权限

revoke

基本用法:

撤销dba权限

撤销连接取取权限

撤销创建表权限

revoke create any table from demo;

撤销某表的权限

revoke all on demo.students from demo;

 3、查询各种权限

查询系统所有权限

select * from system_privilege_map

查询所有对象权限

select * from table_privilege_map

查询角色拥有的权限

select * from role_sys_privs;
select * from role_tab_privs 

查询用户系统权限

select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;

查询用户对象权限

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

三、角色

  Oracle为了兼容以前的版本,提供了三种标准的角色(role):connect、resource和dba。
  1. connect role(连接角色)
  临时用户,特别是那些不需要建表的用户,通常只赋予他们connectrole。connect是使用oracle的简单权限,这种权限只有在对其他用户的表有访问权时,包括select、insert、update和delete等,才会变得有意义。拥有connect role的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym )、会话(session)和与其他数据库的链(link)。
  2. resource role(资源角色)
  更可靠和正式的数据库用户可以授予resource role。resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。
  3. dba role(数据库管理员角色)
  dba role拥有所有的系统权限,包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有。

1、创建角色

2、授权

grant select any table to backer

3、撤销

revoke update any table from backer

4、分配角色,将角色权限授予给用户

5、将角色权限授予其他角色

6、删除角色

示例:

查询所有角色

查询结果

查看当前用户角色

select * from role_sys_privs

查看当前用户管理的角色

select * from user_role_privs

select * from dba_role_privs