DM达梦数据库用户管理

1、dm数据库用户有哪些

SQL> select username from dba_users;

在这里插入图片描述
1、sys -----达梦数据库内置管理用户,不能登录数据库,数据库使用的大部分的数据字典和动态性能视图sys。
2、Sysdba -----数据库的管理员
3、Sysauditor—审计用户
4、Syssso—安全用户
5、Sysdbo—数据操作员(安全版,四权分立)

如何规划用户?
用户名要求:字母开头,a-z,0-9,$#_

2、口令策略

用户密码最长为48个字节,创建用户语句时使用 password policy子句来指定口令策略。
DM.INI PWD_POLICY
系统支持的口令策略:
0 无策略
1 禁止与用户名相同
2 口令长度不小于9
4 至少包含一个大写字母(A-Z)
8 至少包含一个数字(0-9)
16 至少包含一个标点符号(英文状态输入,除”和空格外)
口令策略可单独使用,也可组合应用,比如:需要应用策略4和8,则设置口令策略为 4+8=12

密码尝试登录次数: FAILED_LOGIN_ATTEMPS
密码失败锁定时间: PASSWORD_LOCK_TIME
密码过期时间: PASSWORD_LIFE_TIME

3、策略案例分析

SQL> select b.username, a.failed_num, a.failed_attemps from sysusers a right join all_users b on a.id=b.user_id;

在这里插入图片描述
案例:为数据库设置一个用户,该账户,可以创建自己表,有属于自己的独立的表空间,用户的密码要求每60天变更一次。
创建表空间:

SQL> create tablespace test datafile ‘/dm7/data/DAMENG/test01.dbf’ size 32;

创建用户:

SQL> create user test identified by Dameng1234 limit password_life_time 60 default tablespace test;

4、规划用户权限

系统权限: create drop alter 能够对数据库做什么操作。
对象权限: (表,视图,过程等等)select ,delete,update,insert

5、案例分析

案例1:
查看角色:

SQL> select role from dba_roles;

查看用户权限:

SQL> select grantee,granted_role from dba_role_privs where grantee='TEST';

在这里插入图片描述

SQL> select grantee,privilege from dba_sys_privs where grantee='PUBLIC';

在这里插入图片描述
在这里插入图片描述

SQL> grant create table to test;

在这里插入图片描述

案例2:规划一个用户,账户60天变更一次密码,密码尝试连接2次失败,账户锁定5分钟,用户还可以查询dmhr.employee表。

SQL> create user test1 identified by Test12345 limit password_life_time 60,failed_login_attemps 2,password_lock_time 5;

在这里插入图片描述
在这里插入图片描述

SQL> select b.username, a.failed_num, a.failed_attemps,a.lock_time from sysusers a right join all_users b on a.id=b.user_id;
SQL> select USERNAME,ACCOUNT_STATUS,LOCK_DATE from dba_users where username='TEST1';
SQL> alter user test1 account unlock;

在这里插入图片描述
在这里插入图片描述
一般情况,创建完用户,给resource角色,就基本上可以满足需求。具体需要根据生产环境的来。

案例3:
企业招聘一批录入人员,权限是固定的,只能录入city表。
角色:一类权限的集合。把某些特定的权限给一个固定的角色,然后再把角色分给用户。

SQL> create user test2 identified by Test12345;
SQL> create role r1;
SQL> grant insert on dmhr.city to r1;
SQL> grant references any table to r1;
SQL> grant r1 to test2;
SQL> conn test2/Test12345
SQL> insert into dmhr.city(city_id,city_name,region_id) values ('HS','洪山',7);

在这里插入图片描述
在这里插入图片描述

6、用户维护

SQL> revoke insert on dmhr.city from r1;
SQL> alter user test2 identified by Dameng12345;
SQL> alter user test account lock;
SQL> alter user test account unlock;
SQL> drop user test2;

SQL> drop user test cascade; ----慎用,删除前做备份!
SQL> drop role r1;
发布了155 篇原创文章 · 获赞 88 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_39540651/article/details/105067743