達夢數據庫學習(五、用戶管理)
上期回顧:
用戶管理是安全管理的一部分
達夢數據庫的多權分立(實際上可以參考美國三權分立,不用深究)
SQL>select username from dba_users;
SYSDBA 數據庫管理員
SYS 內置管理員,不能登錄數據庫
SYSSSO 數據庫安全員(安全版使用)
SYSAUDITOR 數據庫審計員
達夢數據庫的版本:開發版(默認為1年free期限),標准版(不支持集群),企業版(可配置集群),安全版(配置安全策略)
每個用戶去完成各自的任務。(多權分立)
一、規划用戶
命名:
字母開頭,可以包含字母和數字以及這三個特殊符號#$_
不能超過128個字符
存儲位置:
規划用戶的表空間--default tablespace XX
密碼策略
密碼的有效期 --password_life_time
密碼嘗試登錄次數--failed_login_attemps
密碼歷史--
密碼寬限期
資源管理
會話的空閑時間
私有內存
磁盤空間
權限管理
系統權限(可以對數據庫做什么)
對象權限(能夠對數據庫對象做什么)
案例1:創建一個用戶user1,密碼的有效期180天,嘗試登錄次數2次。每次鎖定1分鍾,存儲到tbs4表空間中,用戶可以創建表,可以查詢dmhr.city表。
SQL>create user user1 identified by 1234567890 limit password_life_time 180,FAILED_LOGIN_ATTEMPS 2,password_lock_time 1 default tablespace tbs4;
注意:
系統默認口令策略:0:無策略;1:禁止與用戶名相同;2:口令長度不小於0;4:至少包含一個大寫字母(A-Z);8:至少包含一個數字(0-9);16:至少包含一個標點符號(英文輸入法狀態下,除“和空格外的所有符號)若為其他數字,則表示配置值的和,如3=1+2,表示同時啟用第1項和第2項策略。注意當COMPATIBLE_MODE=1時,實際PWD_POLICY的實際值為0
SQL>select para_name,para_value from v$dm_ini where para_name=’PWD_POLICY’;
兼容模式:
是否兼容其他數據庫模式。0:不兼容,1:兼容SQL92標准;2:部分兼容ORACLE數據庫;3:部分兼容MS SQL SERVER,4:部分兼容MYSQL,5:兼容MD6,6:部分兼容TERADATA
修改:
sp_set_para_value(2,’COMPATIBLE_MODE’,’2’);
SQL>select username,account_status from dba_users;
OPEN 表示打開狀態.LOCKED表示鎖定狀態
SQL>alter user user1 account lock;--鎖定用戶
SQL>alter user user1 account unlock;--解鎖用戶
查看當前的用戶:
SQL>select user;
查看用戶默認的角色:
SQL>select grantee,granted_role from dba_role_privs where grantee=’user1’;
查看角色的權限:
SQL>select grantee,granted_role from dba_sys_privs where grantee in (‘PUBLIC’,’SOI’);
授權系統權限:
SQL>grant create table to user1;
授權對象權限:
SQL>grant select on dmhr.city to user1;
注意:
系統權限和對象權限不能寫在同一條語句中。
案例2:創建用戶user2,存儲位置tbs4,空閑會話為2分鍾,私有內存為200M,可以創建視圖,可以更新dmhr.city(注意可以更新一個表意味着必須首先可以查看這個表)
SQL>create user user2 identified by 1234567890 limit CONNECT_IDLE_TIME 2,mem_space 200 default tablespace tbs4;
授權可創建視圖
SQL>grant create view to user2;
授權查看dmhr.city表(然后才能授權更新這個表)
SQL>grant select on dmhr.city to user2;
授權更新dmhr.ciyt表
SQL>grant update on dmhr.city to user2;
撤銷權限:
數據庫對象權限:
SQL>revoke select on dmhr.city from user1;
數據庫系統權限:
SQL>revoke create table from user1;
二、角色管理
角色是一類權限的集合,方便管理。
角色主要類型:DBA、PUBLIC、RESOURCE
不建議把DBA角色給普通用戶,權限過大(但是實際生產往往都這樣搞……)
PUBLIC角色是創建用戶時默認分配的。
一般情況下,把RESOURCE角色分配給用戶,基本可以滿足系統權限的需求。
自定角色:
SQL>create role R1;
把權限分給角色:
SQL>grant select on dmhr.city to R1;
把角色分配給用戶:
SQL>grant R1 to user1;
刪除角色和用戶
刪除角色:
SQL>drop role R1;
刪除用戶:
SQL>drop user user1;
注意因為用戶中存在表,因此會報錯提示“[-2639]:試圖刪除被依賴對象”
SQL>drop user user1 cascade;--進行級聯刪除
