控制用户的访问之权限、角色【weber出品必属精品】
- 权限的作用
限制用户对数据的访问
权限的分类
1. 系统权限:能够存取数据库的权限
2. 对象权限:操作数据库对象的内容
- 系统权限
1.1 如何创建用户:- SQL> create user test default tablespace users identified by test;
- 用户已创建。
1.2 数据库中的系统权限
- SQL> desc system_privilege_map;
- Name Null? Type
- ----------------------------------------------------------------- -------- --------------------------------------------
- PRIVILEGE NOT NULL NUMBER
- NAME NOT NULL VARCHAR2()
- PROPERTY NOT NULL NUMBER
- SQL> select privilege,name,property from system_privilege_map;
- PRIVILEGE NAME PROPERTY
- ---------- ---------------------------------------- ----------
- - ALTER SYSTEM
- - AUDIT SYSTEM
- - CREATE SESSION
- - ALTER SESSION
- - RESTRICTED SESSION
1.3 查看某个用户拥有的系统权限
- SQL> select username,privilege,admin_option from user_sys_privs;
- USERNAME PRIVILEGE ADM
- ------------------------------ ---------------------------------------- ---
- SYS AUDIT ANY NO
- SYS DROP ANY INDEX NO
- SYS CREATE ANY CLUSTER NO
- SYS ALTER ANY TABLE NO
- 。。。。。。。。。。。。。。。。。。。。。。。。。
- rows selected.
1.4 系统权限的授予与回收
sys授予select any table给scott- SQL> conn /as sysdba
- 已连接。
- SQL> grant select any table to scott;--任何普通用户下的表,scott都可以访问
- SQL> select USERNAME,PRIVILEGE from user_sys_privs;
- USERNAME PRIVILEGE
- ------------------------------ ----------------------------------------
- SCOTT CREATE SYNONYM
- SCOTT CREATE VIEW
- SCOTT UNLIMITED TABLESPACE
- SCOTT SELECT ANY TABLE
- SQL> conn scott/tiger
- 已连接。
- SQL> select count(*) from oe.CUSTOMERS;
- COUNT(*)
- ----------
- SQL> select count(*) from hr.employees;
- COUNT(*)
- ----------
sys收回select any table给scott
- SQL> conn /as sysdba
- 已连接。
- SQL> revoke select any table from scott;
- 撤销成功。
- SQL> conn scott/tiger
- 已连接。
- SQL> select USERNAME,PRIVILEGE from user_sys_privs;
- USERNAME PRIVILEGE
- ------------------------------ ----------------------------------------
- SCOTT CREATE SYNONYM
- SCOTT CREATE VIEW
- SCOTT UNLIMITED TABLESPACE
- SQL> select count(*) from hr.employees;
- select count(*) from hr.employees
- *
- 第 行出现错误:
- ORA-: 表或视图不存在
1.5 权限的转授
系统权限不能被级联回收- SQL> conn /as sysdba
- 已连接。
- SQL> grant select any table to scott ;
- 授权成功。
- SQL> conn scott/tiger
- 已连接。
- SQL> grant select any table to hr;
- grant select any table to hr
- *
- 第 行出现错误:
- ORA-: 权限不足
- SQL> conn /as sysdba
- 已连接。
- SQL> revoke select any table from scott;
- 撤销成功。
- SQL> grant select any table to scott with admin option;--把select any table的授予权限给scott
- 授权成功。
- SQL> conn scott/tiger
- 已连接。
- SQL> grant select any table to hr;
- 授权成功。
- SQL> conn hr/hr
- 已连接。
- SQL> select count(*) from oe.customers;
- COUNT(*)
- ----------
- 319
SQL> conn /as sysdba
已连接。
SQL> revoke select any table from scott;撤销成功。
SQL> conn scott/tiger
已连接。
SQL> select count(*) from oe.customers;
select count(*) from oe.customers
*
第 1 行出现错误:
ORA-00942: 表或视图不存在SQL> conn hr/hr
已连接。
SQL> select count(*) from oe.customers;COUNT(*)
----------
319 对象权限
对象权限:在某个数据库对象上的权限
4.1 在某个表上的所有对象权限:
- conn scott/tiger
- grant all on emp to hr;
- conn hr/hr
- SQL> select GRANTEE,OWNER,TABLE_NAME,GRANTOR,PRIVILEGE from user_tab_privs where table_name='EMP';
- GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE
- ------- ------ ----------- ------- --------------------
- HR SCOTT EMP SCOTT ALTER
- HR SCOTT EMP SCOTT DELETE
- HR SCOTT EMP SCOTT INDEX
- HR SCOTT EMP SCOTT INSERT
- HR SCOTT EMP SCOTT SELECT
- HR SCOTT EMP SCOTT UPDATE
- HR SCOTT EMP SCOTT REFERENCES
- HR SCOTT EMP SCOTT ON COMMIT REFRESH
- HR SCOTT EMP SCOTT QUERY REWRITE
- HR SCOTT EMP SCOTT DEBUG
- HR SCOTT EMP SCOTT FLASHBACK
4.2 对象权限的授予与回收
- 授予单个权限:
- SQL> show user
- USER 为 "SCOTT"
- SQL> grant select on emp to hr;
- 授权成功。
- SQL> revoke select on emp from hr;
- 撤销成功。
- 针对于某个列:
- SQL> grant update(sal) on emp to hr;
- SQL> revoke update on emp from hr;
- 撤销成功。
- 4.3 查看对象权限:
- SQL> se
- SQL> col OWNER for a6
- SQL> col TABLE_NAME for a15
- SQL> col GRANTOR for a7
- SQL> col PRIVILEGE for a20
- SQL> show user
- USER 为 "SCOTT"
- SQL> select grantee,owner,table_name,privilege from user_tab_privs;
- GRANTEE OWNER TABLE_NAME PRIVILEGE
- -------- ------ --------------- --------------------
- HR SCOTT EMP FLASHBACK
- HR SCOTT EMP DEBUG
- HR SCOTT EMP QUERY REWRITE
- HR SCOTT EMP ON COMMIT REFRESH
- HR SCOTT EMP REFERENCES
- HR SCOTT EMP INSERT
- HR SCOTT EMP INDEX
- HR SCOTT EMP DELETE
- HR SCOTT EMP ALTER
- rows selected.
- GRANTEE:接受权限的用户
- GRANTOR:授出权限的用户
- 4.4 对象权限的转授
- SQL> show user
- USER 为 "HR"
- SQL> revoke update on employees from scott;
- 撤销成功。
- SQL> grant update on employees to scott with grant option;
- 授权成功。
- SQL> show user
- USER 为 "SCOTT"
- SQL> grant update on hr.employees to oe;
- 授权成功。
- SQL> show user
- USER 为 "SCOTT"
- SQL> update hr.employees set salary=salary+;
- 已更新107行。
- SQL> roll
- 回退已完成。
- SQL> conn oe/oe
- 已连接。
- SQL> update hr.employees set salary=salary+;
- 已更新107行。
- SQL> rollback;
- 回退已完成。
4.5 对象权限的级联回收
- conn hr/hr
- grant update on employees to scott with grant option;
- conn scott/tiger
- grant update on hr.employees to oe;
- SQL> update hr.employees set salary=salary+;
- 已更新107行。
- SQL> roll
- conn oe/oe
- SQL> update hr.employees set salary=salary+;
- 已更新107行。
- SQL> roll
- conn hr/hr
- revoke update on employees from scott;
- conn scott/tiger
- SQL> update hr.employees set salary=salary+;
- update hr.employees set salary=salary+
- *
- 第 行出现错误:
- ORA-: 权限不足
- conn oe/oe
- SQL> update hr.employees set salary=salary+;--对象权限会被级联回收
- update hr.employees set salary=salary+
- *
- 第 行出现错误:
- ORA-: 权限不足
- 角色
5.1 角色:角色是一组权限(包含对象权限和系统权限)的集合
5.2 角色作用:比较容易的权限管理
动态的权限管理
选择权限的可获得性
可通过操作系统授予
5.3. 创建角色并给它授权- SQL> conn /as sysdba
- 已连接。
- SQL> create role r1;
- 角色已创建。
- SQL> grant select any table to r1;
- 授权成功。
- SQL> grant update on scott.emp to r1;
- 授权成功。
查看角色中有哪些系统权限:
- SQL> select PRIVILEGE from role_sys_privs where role='R1';
- PRIVILEGE
- --------------------
- SELECT ANY TABLE
查看角色中的对象权限:
- SQL> select OWNER,TABLE_NAME,PRIVILEGE from role_tab_privs where role='R1';
- OWNER TABLE_NAME PRIVILEGE
- ------ --------------- --------------------
- SCOTT EMP UPDATE
5.4 角色授予与回收
- SQL> grant r1 to hr;--hr拥有角色r1中所有的权限
- 授权成功。
- SQL> conn hr/hr
- 已连接。
- SQL> select count(*) from oe.customers;
- COUNT(*)
- ----------
- SQL> update scott.emp set sal=sal+;
- 已更新14行。
- SQL> roll
- 回退已完成。
- SQL> conn /as sysdba
- 已连接。
- SQL> revoke r1 from hr;--r1中所有的权限都从hr中回收
- 撤销成功。
- SQL> conn hr/hr
- 已连接。
- SQL> select count(*) from oe.customers;
- select count(*) from oe.customers
- *
- 第 行出现错误:
- ORA-: 表或视图不存在
- SQL> update scott.emp set sal=sal+;
- update scott.emp set sal=sal+
- *
- 第 行出现错误:
- ORA-: 表或视图不存在
5.5 查看当前用户有哪些角色
- SQL> select GRANTED_ROLE from user_role_privs;
- GRANTED_ROLE
- ------------------------------
- CONNECT
- PLUSTRACE
- RESOURCE
角色中的权限,在user_sys_privsH和user_tab_privs中看不到的
- SQL> select GRANTED_ROLE from user_role_privs;
- GRANTED_ROLE
- ------------------------------
- CONNECT
- PLUSTRACE
- RESOURCE
- SQL> conn /as sysdba
- 已连接。
- SQL> select privilege from role_sys_privs where role='CONNECT';
- PRIVILEGE
- --------------------
- CREATE SESSION
- SQL> select PRIVILEGE from user_sys_privs;
- PRIVILEGE
- --------------------
- CREATE SYNONYM
- CREATE VIEW
- UNLIMITED TABLESPACE
- CREATE SESSION这个系统权限在user_sys_privs中看不到
- SQL> conn /as sysdba
控制用户的访问之权限、角色【weber出品必属精品】的更多相关文章
- 全世界最详细的图形化VMware中linux环境下oracle安装(一)【weber出品必属精品】
安装流程:前期准备工作--->安装ORACLE软件--->安装升级补丁--->安装odbc创建数据库--->安装监听器--->安装EM <前期准备工作> 安装 ...
- 全世界最详细的图形化VMware中linux环境下oracle安装(二)【weber出品必属精品】
<ORACLE 10.2.05版本的升级补丁安装> 首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入D ...
- 初识数据字典【weber出品必属精品】
数据字典结构 有两部分组成: 1. 基表:以$结尾的系统表,在创建数据库的时候,oracle自动创建的表 2. 用户可以访问的视图 数据字典的种类 DICTIONARY:简称DICT,所有的数据字典, ...
- LAMP架构搭建+Discuz论坛搭建【weber出品必属精品】
一. 本机简介: 本机系统: CentOS-6.4-x86_64 主机名:oracle.ywb IP地址:192.168.146.129 二. 在Linux环境下安装Apache步骤 ...
- 静默安装ORACLE【weber出品必属精品】
安装配置系统环境安装linux ,所有服务都不选择,只是选择安装开发工具,不要安装防火墙(当然也可以在后面关闭) 打开终端,执行如下命令,检查安装包,没有的都要安装 make, glibc, liba ...
- 数据库对象(视图,序列,索引,同义词)【weber出品必属精品】
视图视图的定义:视图就是一个查询的别名为什么使用视图限制数据的存取 SQL> conn /as sysdba 已连接. SQL> grant create view to scott; 授 ...
- 创建和管理表【weber出品必属精品】
创建表 必须有 : 1. CREATE TABLE 的权限 SQL> conn /as sysdba 已连接. SQL> create user test default tablespa ...
- oracle数据库事务相关【weber出品必属精品】
事务的概念:事务:一个事务由一组构成一个逻辑操作的DML语句组成 事务有开始有结束,事务以DML语句开始,以Conmmit和Rollback结束.以下情况会使得事务结束: 1. 执行COMMIT 或者 ...
- linux删除ORACLE【weber出品必属精品】
关闭数据库 sqlplus / as sysdba shutdown abort 清除oracle软件 su - oracle cd $ORACLE_BASE rm -rf * rm -rf /etc ...
随机推荐
- displaytag 简单使用流程
1. 首先导入包:displaytag-1.2.jar,commons-lang.jar和standard.jar;commons-beanutils.jar;这四个jar包 2. 然后在jsp页面做 ...
- 神经网络作业: NN LEARNING Coursera Machine Learning(Andrew Ng) WEEK 5
在WEEK 5中,作业要求完成通过神经网络(NN)实现多分类的逻辑回归(MULTI-CLASS LOGISTIC REGRESSION)的监督学习(SUOERVISED LEARNING)来识别阿拉伯 ...
- 【转】c/c++各种字符、字符串类型转换
itoa 功 能:把一整数转换为字符串 用 法:char *itoa(int value, char *string, int radix); 详细解释:itoa是英文integer to ...
- javascript各种专业名词
刚开始学javascript经常看到各种专业名词,在此整理一下个人的学习笔记: 直接量 直接量——就是程序中直接使用的数据值,如:88 //数字(String)"hello world ...
- Python入门-----介绍
摘要:Python语言的特点 ----->优雅.明确.简单 一.Python适合的领域 web网站和各种网络服务 系统工具和脚本 作为“胶水”语言,把其他语言开发的模块包装起来方便使用 二.Py ...
- GO 输出字符数同时输出这个字符串的字节数
package main import ( "fmt" "unicode/utf8" ) func main(){ var str string str=&qu ...
- PHP 中filter_var的使用
filter_var() 函数通过指定的过滤器过滤变量. 如果成功,则返回已过滤的数据,如果失败,则返回 false. 语法 :filter_var(variable, filter, options ...
- ActionBar +Tab+ViewPager +Fragment 支持侧滑动完成办税工具的页面展示
1:fragment_zhqrl.xml(征期日历) <?xml version="1.0" encoding="utf-8"?> <Line ...
- ural 1017. Staircases
http://acm.timus.ru/problem.aspx?space=1&num=1017 #include <cstdio> #include <cstring&g ...
- ThrottleStop
ThrottleStop 我的要开这个软件,睿频才能开.不然一直工作在1.8Ghz下默认频率太低了开了这个速度才有提升