达梦数据库的用户管理
本文于 5 天前发布,最后更新于 5 天前

一、用户管理

用户是操作者的一个身份。DM 预定义用户:

  • SYS:系统内置用户,不能直接登录。
  • SYSDBA:数据库管理员,拥有 DBA 角色。
  • SYSAUDITOR:数据库审计管理员。
  • SYSSSO:数据库安全管理员,拥有强制访问控制等权限。
  • SYSDBO:安全版本才有此用户,对象操作员。

PWD_POLICY 系统口令策略:

  • 0 无限制。但总长度不得超过 48 个字节
  • 1 禁止与用户名相同
  • 2 口令长度需大于等于 INI 参数 PWD_MIN_LEN 设置的值
  • 4 至少包含一个大写字母(A-Z)
  • 8 至少包含一个数字( 0 – 9)
  • 16 至少包含一个标点符号(英文输入法状态下,除”和空格外的所有符号)

口令策略可单独应用,也可组合应用。组合应用时,如需要应用策略 2 和 4,则设置口令策略为 2+4=6 即可。

案例

(1)指定系统口令策略:包含大写字母,包含数字,长度大于 9。

SELECT * FROM V$DM_INI WHERE PARA_NAME = 'PWD_MIN_LEN';

INI 参数 PWD_MIN_LEN 默认即 9。

所以只需要设置 PWD_POLICY=2+4+8=14 即可

SP_SET_PARA_VALUE(1, 'PWD_POLICY', 14);
--或者
ALTER SYSTEM SET 'PWD_POLICY'=14 BOTH;

(2)创建用户时指定密码策略。

CREATE USER "XXX" IDENTIFIED BY "XXXXXXXXX" PASSWORD_POLICY 2 DEFAULT TABLESPACE "TBS" DEFAULT INDEX TABLESPACE "TBS";

(3)创建/解除PROFILE管理用户资源限制

CREATE PROFILE "PROFILE-TEST" LIMIT FAILED_LOGIN_ATTEMPS 5, PASSWORD_LOCK_TIME 3, SESSION_PER_USER 10;
ALTER USER "TEST" PROFILE "PROFILE-TEST";

配置后TEST用户资源限制即PROFILEZ中的资源限制。

解除PROFILE资源限制,改为默认;并删除PROFILE文件。

ALTER USER "TEST" PROFILE DEFAULT;
DROP PROFILE "PROFILE-TEST";

(4)用户的锁定与解锁

ALTER USER "TEST" ACCOUNT LOCK;
ALTER USER "TEST" ACCOUNT UNLOCK;

(5)直接使用LIMIT子句限制用户资源

ALTER USER "TEST" LIMIT FAILED_LOGIN_ATTEMPS 4, PASSWORD_LOCK_TIME 2, SESSION_PER_USER 5;

(6)查询用户的资源限制

SELECT D.USERNAME "用户名" ,
       D.ACCOUNT_STATUS "账号状态" ,
       D.DEFAULT_TABLESPACE "表空间" ,
       S.SESS_PER_USER "会话限制" ,
       S.CONN_IDLE_TIME "用户会话的最大空闲时间",
       S.FAILED_NUM "尝试登录次数" ,
       S.LIFE_TIME "口令有效期" ,
       S.LOCK_TIME "锁定时间" ,
       S.PWD_POLICY "密码策略",
       S.ALLOW_ADDR "允许的IP地址",
       S.NOT_ALLOW_ADDR "不允许的IP地址"
  FROM DBA_USERS D
  JOIN SYSUSERS S
    ON D.USER_ID=S.ID;

(7)删除用户

DROP USER IF EXISTS "TEST";
DROP USER IF EXISTS "TEST" CASCADE;--级联删除

二、权限管理

权限包含:系统权限和对象权限。

系统默认角色

  • VTI:系统动态视图(V$开头)的查询权限
  • SOI:系统表(SYS开头的表)的查询权限
  • SVI:新版新增

案例

(1)赋予创建表、创建索引、创建视图的权限

GRANT CREATE TABLE, CREATE INDEX, CREATE VIEW TO "TEST";

(2)注意:在赋予更新或删除某个表数据权限时,如果该用户没有对应表的查询权限,那么在赋予权限后,执行UPDATE或者DELETE会报错。

GRANT UPDATE, DELETE ON DMHR.EMPLOYEE TO "TEST";

[dmdba@centos-dm bin]$ ./disql TEST/dameng123:5236

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 10.383(ms)
disql V8
SQL> DELETE FROM DMHR.EMPLOYEE WHERE EMPNO='3333';
DELETE FROM TEST.EMPLOYEES WHERE EMPNO='3333';
[-5504]:没有[EMPLOYEE]对象的查询权限.
已用时间: 1.292(毫秒). 执行号:0.

三、角色管理

  • 角色是一组权限的集合。
  • 角色使权限管理更加方便。
  • 依赖于业务需要。
  • 创建角色赋予用户才有意义。

创建角色

CREATE ROLE "XXX";

角色可以禁用,默认创建后是启用状态,一旦角色禁用,则其权限将不再生效。

案例

(1)创建角色并赋予TEST用户

CREATE ROLE "ROLEDM";
GRANT SELECT ON TEST.DEPARTMENTS TO "ROLEDM";
GRANT SELECT ON DMHR.DEPARTMENTS TO "ROLEDM";
GRANT "ROLEDM" TO "TEST";

(2)角色禁用

SELECT * FROM V$IFUN WHERE NAME LIKE '%ROLE%';
--查看角色相关的方法,可知禁用角色的方法为SP_SET_ROLE,0 为禁用,1 为启用。
--例如
SP_SET_ROLE('ROLEDM', 0);

(3)查看用户所拥有的角色

SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = '用户名';
SELECT * FROM USER_ROLE_PRIVS; --查询当前用户角色

四、相关数据字典

  • DBA_USERS
  • DBA_PROFILES
  • SYSUSERS
  • DBA_ROLE_PRIVS
  • USER_ROLE_PRIVS
  • V$IFUN
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇