zoukankan      html  css  js  c++  java
  • Oracle权限管理

    一)用户
    Oracle中的用户分为二大类
    1)Oracle数据库服务器创建时,由系统自动创建的用户,叫系统用户,如sys。
    2)利用系统用户创建的用户,叫普通用户,如scott,hr,c##tiger,zhaojun,...

    》用sys登录,查询当前Oracle数据库服务器中已有用户的名字和状态
    username表示登录名
    expired&locked表示帐号过期和锁定
    open表示帐号现在可用
    sqlplus / as sysdba;
    col username for a10;
    col account_status for a10;
    set pagesize 100;
    select username,account_status from dba_users;

    查询Oracle中有哪些用户
    select * from all_users;

    二)创建与删除普通用户
    可以在Oracle中创建新的普通用户,创建普通用户命令是:create user,在创建普通用户的同时,应该为其分配一个具体的表空间,通常叫users。

    》用sys登录,查询Oracle中有哪些可用存储空间,所有普通用户默认为users存储空间
    select * from v$tablespace;

    》用sys登录,创建普通用户c##tiger,密码为abc,默认使用users存储空间,即对应硬盘上的一个DBF二进制文件
    sqlplus / as sysdba;
    create user c##tiger identified by abc default tablespace users;

    》用sys登录,为c##tiger分配users空间无限制使用,即数据库中DBF文件可以无限增加,一个DBF文件不够,会创建第二个DBF文件
    sqlplus / as sysdba;
    alter user c##tiger quota unlimited on users;

    》用c##tiger登录,能进orcl数据库吗?
    sqlplus c##tiger/abc
    进不去orcl数据库

    》用sys登录,删除普通用户c##tiger
    sqlplus / as sysdba;
    drop user c##tiger cascade;

    三)了解系统用户
    sys是Oracle中一个重要的系统用户,sys是Oracle中最高权限用户,其角色为SYSDBA(系统管理员)
    sqlplus / as sysdba

    四)权限
    权限的最终作用于用户。即所有用户在数据库内的操作对象和可执行的动作都是受到限制的。
    Oracle中权限分为二大类:
    1)系统权限
    2)对象权限

    五)系统权限
    针对数据库中特定操作的许可,例如:让c##tiger能登录到orcl数据库,能在orcl数据库中创建表

    》用sys登录,获取系统权限的相关信息,例如:select any table表示针对所有表的select权限
    sqlplus / as sysdba;
    select distinct privilege from dba_sys_privs;

    》用sys登录,为c##tiger分配create session与数据库建立会话的权限,即允许该用户登录
    sqlplus / as sysdba;
    grant create session to c##tiger;

    》用c##tiger登录,能进orcl数据库吗?
    sqlplus c##tiger/abc
    能进去orcl数据库

    》用c##tiger登录,创建一张tiger的表,能创建吗?
    sqlplus c##tiger/abc
    create table tiger(
    name varchar2(20)
    );
    这时c##tiger没有权限创建表

    》用sys登录,为c##tiger分配create table权限,即允许创建表
    sqlplus / as sysdba;
    grant create table to c##tiger;

    》用c##tiger登录,创建一张tiger的表,能创建吗?
    sqlplus c##tiger/abc
    create table tiger(
    name varchar2(20)
    );
    可以创建c##tiger表

    》用sys登录,查询c##tiger所拥有的系统权限
    sqlplus / as sysdba;
    select grantee,privilege from dba_sys_privs where lower(grantee) = 'c##tiger';
    grantee表示普通用户名
    privilege权限名

    》用sys登录,撤销c##tiger的create table权限
    sqlplus / as sysdba;
    revoke create table from c##tiger;

    六)对象权限
    用户对已有对象的操作权限,包括:
    1)select可用于表,视图和序列
    2)insert向表或视图中插入新的记录
    3)update更新表中数据
    4)delete删除表中数据
    5)execute函数,过程的执行
    6)index为表创建索引
    7)references为表创建外健
    8)alter修改表或者序列的属性

    》用sys登录,查询c##tiger所拥有的对象权限
    sqlplus / as sysdba;
    col grantee for a10;
    col table_name for a10;
    col privilege for a20;
    select grantee,table_name,privilege from dba_tab_privs where lower(grantee) = 'c##tiger';

    》用sys登录,为c##tiger分配对tiger表的所有权限,即增删改查操作
    sqlplus / as sysdba;
    grant all on c##tiger.tiger to c##tiger;
    注意:c##tiger表示空间名
    tiger表示该空间下的表名
    C##TIGER TIGER FLASHBACK
    C##TIGER TIGER DEBUG
    C##TIGER TIGER QUERY REWRITE
    C##TIGER TIGER ON COMMIT REFRESH
    C##TIGER TIGER REFERENCES
    C##TIGER TIGER UPDATE
    C##TIGER TIGER SELECT
    C##TIGER TIGER INSERT
    C##TIGER TIGER INDEX
    C##TIGER TIGER DELETE
    C##TIGER TIGER ALTER

    》用c##tiger登录,对tiger表进行增删改查操作
    sqlplus c##tiger/abc;
    insert into tiger(name) values('AA');
    update tiger set name = 'BB';
    delete from tiger where rownum = 1;
    select * from tiger;

  • 相关阅读:
    LeetCode 326. Power of Three
    LeetCode 324. Wiggle Sort II
    LeetCode 322. Coin Change
    LeetCode 321. Create Maximum Number
    LeetCode 319. Bulb Switcher
    LeetCode 318. Maximum Product of Word Lengths
    LeetCode 310. Minimum Height Trees (DFS)
    个人站点大开发!--起始篇
    LeetCode 313. Super Ugly Number
    LeetCode 309. Best Time to Buy and Sell Stock with Cooldown (DP)
  • 原文地址:https://www.cnblogs.com/webyyq/p/7636203.html
Copyright © 2011-2022 走看看