控制用户的访问之权限、角色【weber出品必属精品】

  1. 权限的作用
  2. 限制用户对数据的访问

     权限的分类

    1. 系统权限:能够存取数据库的权限 

  3. 2. 对象权限:操作数据库对象的内容

  4. 系统权限 
     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 NUMBERNAME                                   NOT NULL VARCHAR2(40)PROPERTY                               NOT NULL NUMBERSQL> select privilege,name,property from system_privilege_map;PRIVILEGE NAME                       PROPERTY
    ---------- ---------------------------------------- -----------3 ALTER SYSTEM                      0-4 AUDIT SYSTEM                      0-5 CREATE SESSION                     0-6 ALTER SESSION                     0-7 RESTRICTED SESSION                     0

    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。。。。。。。。。。。。。。。。。。。。。。。。。
    159 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 TABLESQL> conn scott/tiger已连接。SQL> select count(*) from oe.CUSTOMERS;COUNT(*)
    ----------319SQL> select count(*) from hr.employees;COUNT(*)
    ----------107

            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 TABLESPACESQL> select count(*) from hr.employees;
    select count(*) from hr.employees*1 行出现错误:
    ORA-00942: 表或视图不存在

    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
    *1 行出现错误:
    ORA-01031: 权限不足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

  5.  对象权限

    对象权限:在某个数据库对象上的权限

    4.1 在某个表上的所有对象权限:

    conn scott/tigergrant all on emp to hr;conn hr/hrSQL> 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 a20SQL> show userUSER 为 "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        ALTER9 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+100;已更新107行。SQL> roll
    回退已完成。
    SQL> conn oe/oe
    已连接。
    SQL> update hr.employees set salary=salary+100;已更新107行。SQL> rollback;回退已完成。

    4.5 对象权限的级联回收

    conn hr/hrgrant update on employees to scott with grant option;conn scott/tigergrant update on hr.employees to oe;SQL> update hr.employees set salary=salary+100;已更新107行。SQL> rollconn oe/oeSQL> update hr.employees set salary=salary+100;已更新107行。SQL> rollconn hr/hrrevoke update on employees from scott;conn scott/tigerSQL> update hr.employees set salary=salary+100;
    update hr.employees set salary=salary+100*1 行出现错误:
    ORA-01031: 权限不足conn oe/oeSQL> update hr.employees set salary=salary+100;--对象权限会被级联回收
    update hr.employees set salary=salary+100*1 行出现错误:
    ORA-01031: 权限不足
  6. 角色
    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(*)
    ----------319SQL> update scott.emp set sal=sal+100;已更新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*1 行出现错误:
    ORA-00942: 表或视图不存在SQL> update scott.emp set sal=sal+100;
    update scott.emp set sal=sal+100*1 行出现错误:
    ORA-00942: 表或视图不存在

    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
    RESOURCESQL> conn /as sysdba
    已连接。SQL> select privilege from role_sys_privs where role='CONNECT';PRIVILEGE
    --------------------
    CREATE SESSIONSQL> select PRIVILEGE from user_sys_privs;PRIVILEGE
    --------------------
    CREATE SYNONYM
    CREATE VIEW
    UNLIMITED TABLESPACECREATE SESSION这个系统权限在user_sys_privs中看不到

     

 

转载于:https://www.cnblogs.com/yaoweber/p/3932977.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299273.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javq接口_Java为什么要使用接口_java接口怎么使用

Java接口是什么Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。接口(英语:Interface)&am…

[(转)hystar整理]Entity Framework 教程

预备知识 2 LINQ技术 2 LINQ技术的基础 - C#3.0 2 自动属性 2 隐式类型 2 对象初始化器与集合初始化器 3 匿名类 3 扩展方法 4 Lambda表达式 4 .NET中的数据访问 4 DataSet方案 5 改进的的DataSet方案 5 手写代码通过ADO.NET2…

Exchange中的数据库文件

Exchange中的数据库文件Exchange中的数据库文件是edb文件、stm文件和众多的log文件组成.其中以edb结尾的文件是数据库文件.以stm结尾的是流数据文件,以log结尾的是事物日志文件.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />E…

13岁上中科大,17岁攻读哈佛博士,“天才”尹希的开挂人生

全世界只有3.14 % 的人关注了爆炸吧知识2013年美国斯隆基金会(Alfred P. Sloan Foundation)颁发的美国斯隆研究奖获得者尹希&#xff0c;31岁哈佛最年轻的华人教授&#xff0c;获2017年“豪华版诺贝尔奖”之称的科学突破奖-物理学新视野奖&#xff0c;这年唯一的获奖华裔。知识…

强制升级?!.NET Core 2.1容器镜像将从Docker Hub中删除

前言.NET Core 2.1将于2021年8月21日结束支持&#xff0c;本来应该没什么影响&#xff0c;该怎么用继续用得了。但是&#xff0c;如果你在生产环境使用了.NET Core 2.1容器镜像&#xff0c;那就要注意了&#xff0c;从8月21日开始&#xff0c;.NET Core 2.1容器镜像将不再在Doc…

浅谈云计算核心技术

云计算一个高大上的名字&#xff0c;现在我也准备开始学习了&#xff0c;今天看了一本云计算的普及性书籍&#xff0c;将云计算的一些核心技术做一个简要的概括吧。虚拟化技术云计算跟虚拟化不能等同&#xff0c;有位专家说过&#xff0c;虚拟化提供了很好的底层技术平台&#…

“史上“最疯狂”的顶级数学家,看完后忍不住感慨太神了”

▲ 点击查看说起世界上最顶级的数学家&#xff0c;你的脑海中会浮现的&#xff0c;大概是欧拉、高斯、香农等数学巨匠。但是要说起成就和神秘性兼备的&#xff0c;一定就是——称为印度之子的——拉马努金。1887年12月22日&#xff0c;拉马努金出生在印度一个穷困潦倒的家庭&am…

JavaScript 游动层onmouseover

<html> <head> <meta http-equiv"Content-Type" content"text/html; charsetGB2312"> <title>学生信息系统</title> <script language"javascript"> var showInfo new function () { this.showLayer func…

.NET 6 新特性 —— Random.Shared

.NET 6 新特性 —— Random.SharedIntro最近微软发了一篇 .NET 6 性能提升的博客文章&#xff0c;里面提到了很多有趣的东西&#xff0c;其中有一个是 Random.Shared这是一个只读的静态属性&#xff0c;并且是一个线程安全的对象&#xff0c;这个东西可以帮助我们简化 Random 对…

《Python CookBook2》 第一章 文本 - 检查字符串中是否包含某字符集合中的字符 简化字符串的translate方法的使用...

检查字符串中是否包含某字符集合中的字符 任务&#xff1a; 检查字符串中是否出现了某个字符集合中的字符 解决方案&#xff1a; 方案一&#xff1a; import itertoolsdef containAny(seq,aset):for item in itertools.ifilter(aset.__contains__,seq):return Truereturn False…

mysql高级查询 二_MySQL高级查询(二)

EXISTS 和NOT EXISTS子查询EXISTS子查询语法:SELECT ……… FROM 表名 WHERE EXISTS (子查询);例:SELECT studentNo AS 学号,studentResult 成绩 FROM resultWHERE EXISTS(/*查询LOgic Java最后一次考试成绩大于80的记录*/SELECT * FROM result WHERE subjectNo(SELECT subject…

What's blocking my lock? 转载

原文地址 &#xff1a;http://www.orafaq.com/node/854 Create a blocking lock To begin, create a situation where one user isactively blocking another. Open two sessions. Issue the following commands inSession 1 to build the test table: SQL> create table ts…

致家长:疫情期间教育好自己的孩子,就是你最重要的事业!

全世界只有3.14 % 的人关注了爆炸吧知识疫情危机&#xff0c;却也是教育的契机。现在孩子呆在家里&#xff0c;老师管不了孩子&#xff0c;却也正是家长重新认识父母之责的契机。家长才是孩子的第一任老师&#xff0c;家长的言传身教、一举一动都影响着孩子成长。孩子是你的唯一…

linux 安全审计

1,创建工作目录mkdir /usr/local/proxy/vi proxy#!/bin/bashTmpfilemktempUser$USERIp${SSH_CLIENT%% *}Date"date %Y-%m-%d"Logfile"/var/log/myaudit/${Date}_${User}_$Ip.log"exec /usr/bin/script -a -f -q $Logfile2 修改/etc/profilevi /etc/profile…

设计模式之访问者

访问者模式介绍访问者模式能将算法与其所作用的对象隔离开来。访问者模式建议将新行为放入要给名为访问者的独立类中&#xff0c;而不是试图将其整合到已有类中。它允许你在不修改已有代码的情况下向已有类层次结构中增加新的行为。需要执行操作的原始对象将作为参数被传递给访…

mysql没有东西的商品_MYSQL 对商品表没有主图的数据调整为下架的SQL脚本

在实际的场景中&#xff0c;存在一些商品&#xff0c;没有主图的信息&#xff0c;但是商品跟对应价格都是上架的&#xff0c;这时候用户叫你&#xff0c;把一些商品没有主图的&#xff0c;跟对应的价格都弄为下架&#xff0c;这时候你该如何处理&#xff1f;&#xff1f;在商品…

转-SQL 2005修改系统表

FROM&#xff1a;http://blog.csdn.net/liangCK/archive/2008/10/07/3029315.aspx 在 SQL Server 2000 中修改系统表的方法大部分人都知道&#xff0c;介绍如何在 SQL 2005 中修改系统表的资料目前还比较少&#xff0c;虽然微软不赞成修改系统表&#xff0c;而且也把修改系统表…

温州人的思维

思维&#xff08;1&#xff09;&#xff1a;商人&#xff1a;没人干过这种事&#xff0c;没有先例可循&#xff0c;万一砸了怎么办&#xff1f;温州人&#xff1a;没人干过怕什么&#xff1f;这样才没人跟你抢市场嘛&#xff0c;头道汤味道最好&#xff0c;先人一步的生意最赚钱…

清华男神再获世界大奖,从放牛娃到清华校长,他考研3次,读博7年,做出诺奖级的科研成果...

全世界只有3.14 % 的人关注了爆炸吧知识2月24日&#xff0c;菲列兹伦敦奖评奖委员会宣布&#xff0c;2020年度菲列兹伦敦奖将授予中国科学院院士、清华大学副校长、北京量子信息科学研究院院长薛其坤。帅气的老薛按照评奖委员会的通知&#xff0c;薛其坤是因为在实验上发现量子…

安装MHA中清理Relay log报错

安装MHA中清理Relay log报错[rootMHA3 ~]# /usr/bin/purge_relay_logs --userroot --password123456 -disable_relay_log_purge --port3306 --workdir/opt/mysql/data/2014-08-27 09:19:30: purge_relay_logs script started.install_driver(mysql) failed: Cant locate DBD/m…