达梦数据库学习(五、用户管理)

达梦数据库学习(五、用户管理)

 

上期回顾:

达梦数据库学习(一、linux操作系统安装及数据库安装)

达梦数据库学习(二、管理数据库实例) 

达梦数据库学习(三、体系结构) 

达梦数据库学习(四、表空间管理) 

 

 

用户管理是安全管理的一部分

达梦数据库的多权分立(实际上可以参考美国三权分立,不用深究

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;--进行级联删除

 

posted @ 2021-01-18 19:19  Mr.MoonLiu  阅读(1865)  评论(0编辑  收藏  举报