zoukankan      html  css  js  c++  java
  • oracle控制用户权限命令

    ORACLE控制用户权限:

      首先使用系统中的拥有DBA权限的账号(system)登录;

    一、创建用户:

      1、DBA使用creater user语句创建用户:

    --创建登录用户名为:user01,密码为:user01
    create user user01 identified by user01;

      此时登录会显示:

    ORA-01045:user USER01 lacks CREATE SESSION privilege;logon denied;
    --用户user01缺乏create session权限,拒绝登录;

      2、然后我们使用grant命令给user01用户赋予create session权限,执行以下命令:

    --赋予user01用户create session权限
    grant
    create session to user01;

      此时登录,登录成功,然后我们使用该用户创建一张表:

    create table test_table(
        id  int,
        name  varchar2(10)
    );

      这时显示:ORA-01031:权限不足

      然后我们给用户赋予创建表的权限

    grant create table to user01;

      此时显示:ORA-01950:对表空间 “USERS” 无权限;

      注:接下来的命令需要使用拥有DBA权限的用户(system)

     

    --给user01用户赋予表空间,unlimited(无限制),也可用具体的大小(10M)
    alert user user01 quota unlimited on users;

      此时再执行创建表语句即可成功;

      然后执行查询语句:

    select * from test_tbale;

      此时查询表数据,执行成功(此时表中无数据)

      3、修改用户的部分权限

        此时在user01用户下修改user02用户的表空间:

    --修改user02的表空间为无限制
    alert user user02 quota unlimited on users;

      此时显示:ORA-01301:权限不足(因为只有系统用户有权限修改)

      但是自己想要修改自己的部分权限是可以的:

    --修改user01用户的密码为user
    alert user user01 identified by user;

      这时是可以的。

    二、创建角色并赋予权限

      创建角色;

      为角色赋予权限;

      再将角色赋予用户;

    1、创建角色

    create role my_role;

    2、为角色赋予权限:

    --为角色my_role赋予登录,创建表,创建视图,创建存储过程等权限
    grant create session,create table,create view,create procedure to my_role

    3、将角色赋予用户:

    --将角色my_role赋予了用户user02,user02也就拥有的my_role所拥有的权限
    grant my_role to user02;

    三、对象权限

      不同的对象拥有不同的对象权限;

      对象的拥有者拥有所有权限;

      对象的拥有者可以向外分配权限;

    CREATE SESSION
    CREATE TABLE
    CREATE SEQUENCE
    CREATE TABLE
    CREATE VIEW

    1、将scott用户下的employees表的查询,修改权限赋予user01用户:

    grant select,update on sott.employees to user01;

    2、with grant option 和 public 关键字 -- 使用户同样拥有分配的权利

      将scott用户的departments表的查询权限赋予user01用户:

    grant select on scott.departments to user01 with grant option;

      意思是:用户user01可以将赋给自己的scott用户的departments表的查询权限再赋予其他的用户

    3、使用scott用户登录执行以下命令:

    grant select,update on locations to public;

      意思是:用户scott将自己的locations表的查询,修改权限赋予了所有用户;

    四、收回对象权限

      查询权限分配情况(select * from ...)

     
    数据字典视图 描述
    ROLE_SYS_PRIVS 角色拥有的系统权限
    ROLE_TAB_PRIVS 角色拥有的对象权限
    USER_ROLE_PRIVS 用户拥有的角色
    USER_TAB_PRIVS_MADE 用户分配的关于表对象权限
    USER_TAB_PRIVS_RECD 用户拥有的关于表对象权限
    USER_COL_PRIVS_MADE 用户分配的关于列的对象权限
    USER_COL_PRIVS_RECD 用户拥有的关于列的对象权限
    USER_SYS_PRIVS 用户拥有的系统权限

    1、收回用户user01关于employees表的查询权限:

    revoke select on employees from user01;

     

    总结:

      DCL控制数据库权限

      此时您已经可以熟练的对数据库权限进行相关操作了

    语句 功能
    CREATE USER 创建用户(通常由DBA完成)
    GRANT 分配权限
    CREATE ROLE 创建角色(通常由DBA完成)
    ALERT USER 修改用户密码
    REVOKE 收回权限
  • 相关阅读:
    C连载20-转换说明中的异常
    Android连载30-SharedPreference存储
    搭建一个开源项目12-Kubernetes集群部署(下)以及elasticsearch部署
    JavaScript连载29-元素类型获取、节点CD
    从零开始学VUE之模板语法(计算属性)
    从零开始学VUE之模板语法(绑定属性)
    从零开始学VUE之模板语法(插值操作)
    从零开始学VUE之Vue的生命周期
    从零开始学VUE之Vue创建时可以传入的Option属性
    从零开始学VUE之Vuejs初体验(DEMO)
  • 原文地址:https://www.cnblogs.com/taosheng-yijiu/p/15116445.html
Copyright © 2011-2022 走看看