zoukankan      html  css  js  c++  java
  • Oracle杂记

    用户A给用户B授权表的权限

    --使用dba登录Oracle授权:

    GRANT SELECTUPDATEDELETE ON usera.<表名> TO userb;
    --或
    GRANT ALL ON usera.<表名> TO userb;
     
    1、给数据库用户授权(对象为用户表)
    GRANT privilege[, ...] ON object[, ...] TO { PUBLIC | GROUP group| username}
     
    privilege:
        select:查询
        insert:插入
        update:更新
        delete:删除
        rule
        all:所有
     
    grant select,insert,update on tablename to public;
    给所有用户授予查询、插入、更新tablename表的权限
    revoke select,insert,update on tablename from public;//收回所有用户查询、插入、更新tablename表的权限
     
    object:
        table:表
        view:视图
        sequence:序列
        index:索引
     
    grant select,insert,update on tablename,viewname,sequencename,indexname to public;
     
    public:对所有用户开放权限
    GROUP groupname:对该组所有用户开放权限
    username:对指定用户开放权限
     
    2、给数据库用户授权(对象多为系统表,如dba可以查看的表)
     
    grant dba to username;
    不给用户授予dba权限,用户将无法查看系统表,例如v$datafile,dba_data_files等
    revoke dba from username;//对用户username回收dba权限
    注:如果使用pl/sql登录,授予dba权限后,需要重新登陆(初始理解,错误)
    后经验证,不需要重新登陆,只需要重新打开一个会话就可以
    理解:数据库的所有权限操作,都是以会话为单位,如果当前会话执行时没有dba权限,即便是已经重新赋予了权限,在当前会话中也是不起作用的
    而如果当前会话有dba权限,而后台取消了权限,那么当前会话的dba权限也不会消失
     
    grant connect to username;
    不给新建用户授予connect权限,新建用户无法通过SID或SERVICE_NAME连接数据库实例,即无法登录数据库
    revoke connect to username;//对用户username回收connect权限
     
    grant resource to username with admin option;
    grant unlimited tablespace to username with admin option;
    不给新建用户授予resource权限,新建用户无法创建表
    revoke resource from username;//对用户回收resource权限
     
    3、查看指定用户有哪些系统权限
    select * from dba_role_privs where grantee=upper('username');
     
    4、查看指定用户有哪些对象权限
    select * from dba_tab_privs where grantee=upper('username');
     
     
    可能遇到问题:
    1、当在一个新建数据库用户上创建表失败时,可以查看系统权限
        在当前用户执行select * from dba_role_privs where grantee=upper('username');如果不能执行(提示表或视图不存在),说明没有dba权限
        解决方法:可以登录sys账户赋予dba权限
        登录sys:sqlplus / as sysdba
        给username赋权限:grant dba to username;
     
        也可以直接登录sys账户,select * from dba_role_privs where grantee=upper('username'),如果granted_role的值没有dba,说明没有dba权限
     
     
    权限相关的查询和赋予:
    所有权限的赋予均是在有赋予权限的用户下进行,此处授权用户都是sys用户
    1、select * from dba_role_privs where grantee=upper('luyongpeng');
    其中,admin_option是通过在授权时添加with admin option 选项定义
    grant dba to luyongpeng with admin option;//admin_option为YES,如果不加with admin option 选项,则admin_option为NO
    使用grant dba to luyongpeng;无法覆盖之前的权限
    grant dba to luyongpeng with admin option 可以覆盖grant dba to luyongpeng;的权限
  • 相关阅读:
    memcache安装 基于Red Hat 7.4
    LNMP源码编译
    LAMP源码编译
    Red Hat 7.4 安装laravel框架 基于xampp集成环境
    PHP 扩展开发检测清单(扩展开发必读)
    20 个 Laravel Eloquent 必备的实用技巧
    [项目推荐] Corcel 让你在 WordPress 中使用 Laravel
    Tumblr:我们是如何从 PHP 5 升级到 PHP 7 的
    PHP / Laravel 月刊 #23
    十个你需要在 PHP 7 中避免的坑
  • 原文地址:https://www.cnblogs.com/Thriving-Heart/p/7663051.html
Copyright © 2011-2022 走看看