1. 程式人生 > >Oracle使用者、許可權、角色管理

Oracle使用者、許可權、角色管理

Oracle 許可權設定
一、許可權分類:
系統許可權:系統規定使用者使用資料庫的許可權。(系統許可權是對使用者而言)。

實體許可權:某種許可權使用者對其它使用者的表或檢視的存取許可權。(是針對表或檢視而言的)。

二、系統許可權管理:
1、系統許可權分類:
DBA: 擁有全部特權,是系統最高許可權,只有DBA才可以建立資料庫結構。

RESOURCE:擁有Resource許可權的使用者只可以建立實體,不可以建立資料庫結構。

CONNECT:擁有Connect許可權的使用者只可以登入Oracle,不可以建立實體,不可以建立資料庫結構。

對於普通使用者:授予connect, resource許可權。
對於DBA管理使用者:授予connect,resource, dba許可權。

2、系統許可權授權命令:
[系統許可權只能由DBA使用者授出:sys, system(最開始只能是這兩個使用者)]
授權命令:SQL> grant connect, resource, dba to 使用者名稱1 [,使用者名稱2]...;

[普通使用者通過授權可以具有與system相同的使用者許可權,但永遠不能達到與sys使用者相同的許可權,system使用者的許可權也可以被回收。]

例:
SQL> connect system/manager
SQL> Create user user50 identified by user50;
SQL> grant connect, resource to user50;

查詢使用者擁有哪裡許可權:
SQL> select * from dba_role_privs;
SQL> select * from dba_sys_privs;
SQL> select * from role_sys_privs;

刪除使用者:SQL> drop user 使用者名稱 cascade;  //加上cascade則將使用者連同其建立的東西全部刪除

3、系統許可權傳遞:
增加WITH ADMIN OPTION選項,則得到的許可權可以傳遞。

SQL> grant connect, resorce to user50 with admin option;  //可以傳遞所獲許可權。

4、系統許可權回收:系統許可權只能由DBA使用者回收
命令:SQL> Revoke connect, resource from user50;

說明:

1)如果使用WITH ADMIN OPTION為某個使用者授予系統許可權,那麼對於被這個使用者授予相同許可權的所有使用者來說,取消該使用者的系統許可權並不會級聯取消這些使用者的相同許可權。

2)系統許可權無級聯,即A授予B許可權,B授予C許可權,如果A收回B的許可權,C的許可權不受影響;系統許可權可以跨使用者回收,即A可以直接收回C使用者的許可權。

三、實體許可權管理1、實體許可權分類:select, update, insert, alter, index, delete, all  //all包括所有許可權
execute  //執行儲存過程許可權

user01:
SQL> grant select, update, insert on product to user02;
SQL> grant all on product to user02;

user02:
SQL> select * from user01.product;

// 此時user02查user_tables,不包括user01.product這個表,但如果查all_tables則可以查到,因為他可以訪問。


2. 將表的操作許可權授予全體使用者:
SQL> grant all on product to public;  // public表示是所有的使用者,這裡的all許可權不包括drop。

[實體許可權資料字典]:
SQL> select owner, table_name from all_tables; // 使用者可以查詢的表
SQL> select table_name from user_tables;  // 使用者建立的表
SQL> select grantor, table_schema, table_name, privilege from all_tab_privs; // 獲權可以存取的表(被授權的)
SQL> select grantee, owner, table_name, privilege from user_tab_privs;   // 授出許可權的表(授出的許可權)

3. DBA使用者可以操作全體使用者的任意基表(無需授權,包括刪除):
DBA使用者:
SQL> Create table stud02.product(
 id number(10),
 name varchar2(20));
SQL> drop table stud02.emp;

SQL> create table stud02.employee
 as
 select * from scott.emp;
 
4. 實體許可權傳遞(with grant option):
user01:

SQL> grant select, update on product to user02 with grant option; // user02得到許可權,並可以傳遞。

5. 實體許可權回收:
user01:
SQL>Revoke select, update on product from user02;  //傳遞的許可權將全部丟失。

說明

1)如果取消某個使用者的物件許可權,那麼對於這個使用者使用WITH GRANT OPTION授予許可權的使用者來說,同樣還會取消這些使用者的相同許可權,也就是說取消授權時級聯的。

Oracle 使用者管理
一、建立使用者的Profile檔案SQL> create profile student limit  // student為資原始檔名
 FAILED_LOGIN_ATTEMPTS  3  //指定鎖定使用者的登入失敗次數
 PASSWORD_LOCK_TIME 5  //指定使用者被鎖定天數
 PASSWORD_LIFE_TIME 30  //指定口令可用天數
 

二、建立使用者SQL> Create User username
 Identified by password
 Default Tablespace tablespace
 Temporary Tablespace tablespace
 Profile profile
 Quota integer/unlimited on tablespace;

例:
SQL> Create user acc01
 identified by acc01   // 如果密碼是數字,請用雙引號括起來
 default tablespace account
 temporary tablespace temp
 profile default
 quota 50m on account;
SQL> grant connect, resource to acc01;

[*] 查詢使用者預設表空間、臨時表空間
SQL> select username, default_tablespace, temporary_tablespace from dba_users;

[*] 查詢系統資原始檔名:
SQL> select * from dba_profiles;
資原始檔類似表,一旦建立就會儲存在資料庫中。
SQL> select username, profile, default_tablespace, temporary_tablespace from dba_users;

SQL> create profile common limit
 failed_login_attempts 5
 idle_time 5;
 
SQL> Alter user acc01 profile common;

三、修改使用者:SQL> Alter User 使用者名稱
 Identified 口令
 Default Tablespace tablespace
 Temporary Tablespace tablespace
 Profile profile
 Quota integer/unlimited on tablespace;
 
1、修改口令字:
SQL>Alter user acc01 identified by "12345";

2、修改使用者預設表空間:
SQL> Alter user acc01 default tablespace users;

3、修改使用者臨時表空間
SQL> Alter user acc01 temporary tablespace temp_data;

4、強制使用者修改口令字:
SQL> Alter user acc01 password expire;

5、將使用者加鎖
SQL> Alter user acc01 account lock;  // 加鎖
SQL> Alter user acc01 account unlock;  // 解鎖

四、刪除使用者SQL>drop user 使用者名稱;  //使用者沒有建任何實體
SQL> drop user 使用者名稱 CASCADE;  // 將使用者及其所建實體全部刪除

*1. 當前正連線的使用者不得刪除。


五、監視使用者:1、查詢使用者會話資訊:
SQL> select username, sid, serial#, machine from v$session;

2、刪除使用者會話資訊:
SQL> Alter system kill session 'sid, serial#';

3、查詢使用者SQL語句:
SQL> select user_name, sql_text from v$open_cursor;

Oracle 角色管理

一、何為角色
角色。角色是一組許可權的集合,將角色賦給一個使用者,這個使用者就擁有了這個角色中的所有許可權。

二、系統預定義角色 預定義角色是在資料庫安裝後,系統自動建立的一些常用的角色。下介簡單的介紹一下這些預定角色。角色所包含的許可權可以用以下語句查詢:
sql>select * from role_sys_privs where role='角色名';

1.CONNECT, RESOURCE, DBA
這些預定義角色主要是為了向後相容。其主要是用於資料庫管理。oracle建議使用者自己設計資料庫管理和安全的許可權規劃,而不要簡單的使用這些預定角色。將來的版本中這些角色可能不會作為預定義角色。

2.DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE
這些角色主要用於訪問資料字典檢視和包。

3.EXP_FULL_DATABASE, IMP_FULL_DATABASE
這兩個角色用於資料匯入匯出工具的使用。

4.AQ_USER_ROLE, AQ_ADMINISTRATOR_ROLE
AQ:Advanced Query。這兩個角色用於oracle高階查詢功能。

5. SNMPAGENT
用於oracle enterprise manager和Intelligent Agent

6.RECOVERY_CATALOG_OWNER
用於建立擁有恢復庫的使用者。關於恢復庫的資訊,參考oracle文件《Oracle9i User-Managed Backup and Recovery Guide》

7.HS_ADMIN_ROLE
A DBA using Oracle's heterogeneous services feature needs this role to access appropriate tables in the data dictionary.

三、管理角色
1.建一個角色
sql>create role role1;


2.授權給角色
sql>grant create any table,create procedure to role1;


3.授予角色給使用者
sql>grant role1 to user1;


4.檢視角色所包含的許可權
sql>select * from role_sys_privs;


5.建立帶有口令以角色(在生效帶有口令的角色時必須提供口令)
sql>create role role1 identified by password1;


6.修改角色:是否需要口令
sql>alter role role1 not identified;
sql>alter role role1 identified by password1;


7.設定當前使用者要生效的角色
(注:角色的生效是一個什麼概念呢?假設使用者a有b1,b2,b3三個角色,那麼如果b1未生效,則b1所包含的許可權對於a來講是不擁有的,只有角色生效了,角色內的許可權才作用於使用者,最大可生效角色數由引數MAX_ENABLED_ROLES設定;在使用者登入後,oracle將所有直接賦給使用者的許可權和使用者預設角色中的許可權賦給使用者。)
sql>set role role1;//使role1生效
sql>set role role,role2;//使role1,role2生效
sql>set role role1 identified by password1;//使用帶有口令的role1生效
sql>set role all;//使用該使用者的所有角色生效
sql>set role none;//設定所有角色失效
sql>set role all except role1;//除role1外的該使用者的所有其它角色生效。
sql>select * from SESSION_ROLES;//檢視當前使用者的生效的角色。


8.修改指定使用者,設定其預設角色
sql>alter user user1 default role role1;
sql>alter user user1 default role all except role1;
詳見oracle參考文件


9.刪除角色
sql>drop role role1;
角色刪除後,原來擁用該角色的使用者就不再擁有該角色了,相應的許可權也就沒有了。

說明:

1)無法使用WITH GRANT OPTION為角色授予物件許可權

2)可以使用WITH ADMIN OPTION 為角色授予系統許可權,取消時不是級聯

相關推薦

Oracle使用者許可權角色管理

Oracle 許可權設定一、許可權分類:系統許可權:系統規定使用者使用資料庫的許可權。(系統許可權是對使用者而言)。 實體許可權:某種許可權使用者對其它使用者的表或檢視的存取許可權。(是針對表或檢視而言的)。 二、系統許可權管理:1、系統許可權分類:DBA: 擁有全部特權,是系統最高許可權,只有DBA才可以

oracle基礎教程(第五天)管理索引許可權角色

期望目標 1.掌握維護oracle資料完整性的技巧 2.理解索引概念,會建立索引 3.管理oracle的許可權和角色 維護資料的完整性 資料的完整性用於確保資料庫資料遵從一定的商業和邏輯規則。在oracle中,資料完整性可以使用約束、觸發器、應用程式(過程、函式)三種方法

Oracle 的使用者許可權角色及表空間的管理

第二章:Oracle的使用者、許可權、角色及表空間的管理 Oracle資料庫查詢時如何對滿屏的sql命令做清屏處理呢?很多朋友喜歡使用SQL*Plus,SQL*Plus工具怎麼清屏呢? oracle清屏命令彙集: 1、同時按SHIFT和DELETE鍵,然

oracle 進階三(索引許可權角色

索引 加速資料的存取,合理的使用索引可以大大降低i/o 的次數,提高訪問的效能 單列索引:基於單個列所建立的索引 create index 索引名 on 表名(列名); 複合索引:基於多個列的索引,同一個表可以有多個索引,但是要求列的組合必須不能,意思就是不能對於相同的組合

Oracle資料庫(許可權使用者角色基本知識介紹)

Oracle資料庫推薦以引用部落格: 本編文章內容分佈:(1)介紹資料庫常見分類(2)關係型資料庫概念(3)Oracle資料庫基本知識介紹(4)Oracle資料庫許可權介紹,其中許可權的內容涉及範圍較大,許可權在本文中和使用者、角色練習較為緊密,角色是許可

Oracle 10g的使用者許可權角色

Oracle 本身的資料字典設計我個人覺得很合理, 因為DBA_xxx, ALL_xxx,USER_xxx 讓人一看大概就知道 這個檢視是幹什麼用的. 本文簡要總結了一下與許可權,角色相關的檢視. 一. 概述    與許可權,角色相關的檢視大概有下面這些:        DBA_SYS_PRIVS:

使用者職位組織許可權角色SQL語句

****************** 角色 --角色 select r.fid        FID,        r.fnumber &nb

Oracle使用者,許可權角色以及登入管理

  Oracle使用者,許可權,角色以及登入管理   1. sys和system使用者的區別 system使用者只能用normal身份登陸em。除非你對它授予了sysdba的系統許可權或者syspoer系統許可權。 sys使用者具有“SYSDBA”或者“SYS

表空間使用者許可權角色 (資料控制語言-DCL-grant,revoke)

1、登陸資料庫 SQLPLUS SYS AS SYSDBA; // 登陸SYS帳戶 SQLPLUS 使用者名稱/密碼@SID; // 登陸普通使用者 例如:SQLPLUS LAOSAN/[email&

Sql Server 2008 R2資料庫之登入名使用者架構許可權角色

原文地址http://www.shaoqun.com/a/106188.aspx 這幾天先是研究了一下有關資料庫的安全性、許可權等方面的東西,那就是先說一下資料庫安全性和許可權的問題,首先是對資料庫的登入名、使用者和架構做一個簡單的介紹。登入名大家都知道就是登入資料庫時

基於EasyNVR二次開發實現業務需求:使用者許可權裝置管理

許多接觸到EasyNVR的使用者、開發者都會提出關於EasyNVR裝置分組和賬戶裝置關係對映的問題,我們參考目前大部分的視訊能力輸出平臺的做法,EasyNVR目前只做了唯一的使用者/密碼(類比appkey/secretkey)管理,應用層呼叫EasyNVR

Oracle Database 權限與角色管理

col from lte table del proc ssi nis nec 授予用戶的系統權限 SQL> grant create table,create sequence,create view to tpcc; Grant succeeded. 查詢授予用

OARACLE——建立表空間使用者許可權刪除使用者匯入匯出

1、使用sys使用者登入,連線為SYSDBA; 2、查詢表空間資料資料夾在伺服器上的路徑,得到資料夾的路徑為D:\ORACLE\PRODUCT\10.2.0\ORADATA\YWSJ\; Select FILE_NAME FROM DBA_DATA_FILES; 3、建立表空間 CR

Rest_Framework之認證許可權頻率元件原始碼剖析

一:使用RestFramwork,定義一個檢視 from rest_framework.viewsets import ModelViewSet class BookView(ModelViewSet): queryset = Book.objects.all()

04,認證許可權頻率

  .wiz-editor-body .wiz-code-container { position: relative; padding: 8px 0; margin: 5px 25px 5px 5px; text-indent: 0; text-align: left } .CodeMirror

JAVA知識點(類方法構造器許可權修飾符資料型別等知識點)

注意事項: 同一個包中不能有一樣的類名的類,不然編譯會出現錯誤。 (二)單例類(Singleton) 1、把構造器用private隱藏。 2、用static建立一個自定義只允許建立一個物件例項的靜態方法(這樣即使還沒建立物件,就可以由類呼叫進行檢查是否已經存在例項了並進行

linux命令之----ls命令查詢檔案的所有者許可權時間大小等資訊

1、ls命令作用 ls命令用於顯示指定工作目錄下之內容(列出目前工作目錄所含之檔案及子目錄) 2、ls命令結構 drwxr-xr-x  2 root root 4.0K  3月  23  2017  etc “d”   表示檔案的型別為目錄 “rwx” 表示檔

rabbitmq 許可權角色管理

翻看官方的release文件後,得知由於賬號guest具有所有的操作許可權,並且又是預設賬號,出於安全因素的考慮,guest使用者只能通過localhost登陸使用,並建議修改guest使用者的密碼以及新建其他賬號管理使用rabbitmq(該功能是在3.3.0版本引入的

Django框架rest_framework中APIView的as_view()原始碼解析認證許可權頻率控制

在上篇我們對Django原生View原始碼進行了區域性解析:https://www.cnblogs.com/dongxixi/p/11130976.html 在前後端分離專案中前面我們也提到了各種認證需要自己來做,那麼我們用rest_framework的時候 rest_framework也為我們提供相應的

實驗目的: 1理解使用者與模式的概念,掌握oracle中使用者管理的基本方法 2理解系統許可權、物件許可權的概念,掌握分配許可權的方法 3理解角色的概念,掌握角色的應用方法 實驗內容: 一使用者

撰寫人——軟體二班——陳喜平 一、使用者管理與應用 1、檢視使用者與模式 show USER; 2、建立使用者 sqlplus sys/[email protected] as sysdba CREATE USER t16436220 IDENTIFIED B