日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

十四, 角色

發布時間:2024/3/12 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 十四, 角色 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

oracle 角色

介紹
角色就是相關權限的命令集合,使用角色的主要目的就是為了簡化權限的管理。
角色分為預定義和自定義角色兩類
二、3種標準角色

  • CONNECT Role(連接角色)

    擁有CONNECT role的用戶還能夠創建表、視圖、序列(sequence)、簇(cluster)、同義詞(synonym )、會話(session)和與其他數據庫的鏈(link)。

  • RESOURCE Role(資源角色)
    提供給用戶另外的權限以創建他們自己的表、序列、過程(procedure)、觸發器(trigger)、索引(index)和簇(cluster),resource角色隱含unlimited tablespace系統權限。

  • 3、dba角色

    dba角色具有所有的系統權限,及with admin option選項,默認的dba用戶為sys和system他們可以將任何系統權限授予其他用戶。

    但是要注意的是dba角色不具備sysdba和sysoper的特權(啟動和關閉數據庫)。
    一個具有DBA角色的用戶可以撤消任何別的用戶甚至別的DBA的CONNECT、RESOURCE 和DBA的其他權限。當然,這樣是很危險的,因此,除非真正需要,DBA權限不應隨便授予那些不是很重要的一般用戶。
    撤消一個用戶的所有權限,并不意味著從Oracle中刪除了這個用戶,也不會破壞用戶創建的任何表;只是簡單禁止其對這些表的訪問。其他要訪問這些表的用戶可以象以前那樣地訪問這些表。

    connect角色
    connect角色具有一般應用開發人員需要的大部分權限,當建立了一個用戶后,多數情況下,只要給用戶授予connect和resource角色就夠了
    Connect角色包含以下系統權限
    create cluster
    create database link
    create session
    alter session
    create table
    create view
    create sequence

    resource角色
    resource角色具有應用開發人員所需要的其它權限,比如建立存儲過程,觸發器等。這里需要注意的是resource角色隱含unlimited tablespace系統權限。
    resource角色包含以下系統權限:
    create cluster
    create indextype
    create table
    create sequence
    create type
    create procedure
    create trigger

    自定義角色
    建立角色(不驗證)
    如果角色是公用的角色,可以采用不驗證的方式建立角色。

    create role 角色名 not identified;

    建立角色(數據庫驗證)
    采用這樣的方式時,角色名、口令存放在數據庫中。當激活該角色時,必須提供口令。在建立這種角色時,需要為其提供口令。

    create role 角色名 identified by 密碼;

    給角色授權
    給角色授予權限和給用戶授權沒有太多區別,但是要注意,系統權限的unlimited tablespace和對象權限的with grant option選項是不能授予角色的。

    分配角色給某個用戶
    一般分配角色是由dba來完成的,如果要以其它用戶身份分配角色,則要求用戶必須具有grant any role的系統權限。

    SQL> conn system/oracle; SQL> grant 角色名 to blake with admin option;

    因為給了with admin option選項,所以,blake可以把system分配給它的角色分配給別的用戶。

    刪除角色
    使用drop role,一般是dba來執行,如果其它用戶則要求該用戶具有drop any role系統權限。

    SQL> conn system/oracle; SQL> drop role 角色名;

    顯示角色信息
    1)、顯示所有角色

    SQL> select * from dba_roles;

    2)、顯示角色具有的系統權限

    SQL> select privilege, admin_option from role_sys_privs where role='角色名';

    3)、顯示角色具有的對象權限
    通過查詢數據字典視圖dba_tab_privs可以查看角色具有的對象權限或是列的權限。
    4)、顯示用戶具有的角色,及默認角色
    當以用戶的身份連接到數據庫時,oracle 會自動的激活默認的角色,通過查詢數據字典視圖dba_role_privs 可以顯示某個用戶具有的所有角色及當前默認的角色。

    SQL> select granted_role, default_role from dba_role_privs where grantee = ‘用戶名’;

    精細訪問控制
    精細訪問控制是指用戶可以使用函數,策略實現更加細微的安全訪問控制。如果使用精細訪問控制,則當在客戶端發出sql語句(select,insert,update,delete)時,oracle會自動在sql語句后追加謂詞(where子句),并執行新的sql語句,通過這樣的控制,可以使得不同的數據庫用戶在訪問相同表時,返回不同的數據信息,

    總結

    以上是生活随笔為你收集整理的十四, 角色的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。