oracle- 用戶創建、權限、角色


  數據庫安裝中最后一步“口令管理”,可對 用戶解鎖,重置密碼。

    數據庫名:orcl

    sys:

      default password:manager

      主要存儲數據字典與view,擁有dba、sysdba、sysoper的角色與權限,是權限最高的用戶。

    system:

      default password:chang_on_install

      擁有dba、sysdba的角色與權限,若以sysdba角色登錄,實質仍然以sys作為用戶登錄。

      使用PL/SQL “新建命令”,可以證實

          

         

  --創建用戶

    create user 用戶名 identified by 密碼

  --刪除用戶

    drop user 用戶名 cascade(如果用戶下,已有table,view..)

  --給予角色與權限

    權限:規范用戶能干什么事,比如 create table

    角色:就是權限的集合,是擁有多項權限的,一個或多個權限

 

  用戶被創建后,如果沒有分配先關權限,是不能夠登錄數據庫的。

    --grant 角色名/權限名 to 用戶

======================================================================

    --角色

      1.分類

      預定義角色: connect、resource、dba三種角色。

      自定義角色:

      connect 角色: 擁有 alter session、create cluster、create database link、create table、create view、create sequence 權限

      resource角色:允許用戶在任何一個表空間建表

        隱含了 unlimited tablespace 系統權限,擁有create cluster、create indextype、create  table、

           create  sequence、create type、create procedure、create trigger權限

        dba角色:擁有所有的系統權限,但不具備 sysdba sysoper的特權,啟動和關閉數據庫、建立角色。  

      新建用戶不能創建表,可嘗試  grant unlimited tablespace to UserName;

 

      2.創建角色

       create  role RoleName not identified; ---不用驗證方式
                  create  role RoleName identified by RolePwd; --驗證的方式 

     3.角色賦予

       grant slect on tableName/viewName to roleName;

       如果當前用戶=sys or system,則可以使用

        select * from dba_roles  查看所有的角色

        select * from dba_role_privs 查看所有用戶擁有的角色

       做了個測試  select count(*) from dba_role_privs where grantee='SYS' =select count(*) from user_role_privs

      如果是普通用戶,可以使用

        select * from user_role_privs   查看當前用戶被授予的角色

      這些系統表其實是數據字典。    

        1、動態數據字典:

          以v$xxx開始的數據字典,反映數據庫動態運行狀況,在不同時間查詢會得到不同的結果。

        2、DBA數據字典:

          是以DBA_xxx表示,存儲數據庫結構,查詢DBA數據字典可以反映數據庫結構設置,

          管理磁盤空間和表空間、事務與回退段、用戶與表空間等信息。

           3、用戶數據字:

          是以USER_xxx表示,反應用戶所創建的實體信息

        4、ALL_xxx類數據字典:

          表示用戶所創建的實體及用戶有權可以存取的實體,如 all_users

    4.角色刪除

      一個用戶若想刪除某個role,應當具有 drop any role 權限。

    5.查看系統角色所擁有的權限

      select *  from role_sys_privs

======================================================================

     --權限

       系統權限:描述用戶對數據庫訪問的權限

       對象權限:用戶對其他用戶的數據對象操作的權限

          包含select、insert、update、delete、exec、all、index、refereces、execute

          其中all代表select、insert、update、delete四種權限

      如果希望用戶A可以操作用戶B某張表,則可以

        ---grant all on UserA.tableName to UserB (with grant option 即B可以將這個權限再次賦予用戶C)

        ---select * from UserA.tableName

            ---revoke all on tableName from UserA (回收用戶A對某表的操作權限)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM