达梦数据库用户与权限管理

news/2024/4/19 17:18:58/

达梦数据库用户与权限管理

  • 用户管理
    • 口令策略
    • 管理用户
    • 资源限制
  • 权限管理
    • 一般权限
    • 特殊权限
  • 角色管理

用户管理

达梦数据库安装后创建的内置用户:

  • SYS:内置用户,不允许登录。该用户下有常用的数据字典;
  • SYSDBA:系统管理员,拥有除审计和强制访问控制之外的所有权限;
  • SYSAUDITOR:系统审计管理员;
  • SYSSSO:系统安全管理员,有强制访问控制的权限;
  • SYSDBO:安全对象操作员,仅安全版本才有。

达梦数据库中支持通过SQL和manager图形化工具两种方式对用户进行管理。

口令策略

达梦用户的登录口令策略由隐含参数PWD_POLICY控制。其值默认为2。

  • 0:无策略;
  • 1:禁止与用户名相同;
  • 2:口令长度需大于等于ini参数PWD_MIN_LEN(默认为9);
  • 4:至少包含一个大写字母(A-Z);
  • 8:至少包含一个数字(0-9);
  • 16:至少包含一个特殊字符(除"和空格以外的英文字符)。

口令策略可以组合设置,如果要同时应用策略1、2、4、8,只需设置策略为1+2+4+8=15即可。

查看生效的口令策略:

select * from v$parameter t where t.name='PWD_POLICY';

修改口令策略:

alter system set 'PWD_POLICY'=15 both;

管理用户

创建用户:

create user HRTEST identified by HRPass2024; --创建用户时指定默认表空间
create user HRTEST identified by HRPass2024 default tablespace DMDATA default index tablespace DMINDEX;--创建用户时指定不限制尝试登录失败的次数(默认连续登录三次失败会锁定账户)
create user HRTEST identified by HRPass2024 limit failed_login_attemps unlimited 
default tablespace DMDATA default index tablespace DMINDEX;

检查用户信息:

select * from dba_users;select p.username,t.* from sysusers t,dba_users p where t.id=p.user_id;

锁定和解锁账户:

alter user HRTEST account lock;alter user HRTEST account unlock;

变更用户信息:

--修改用户密码
alter user HRTEST identified by "NewPass2024";--修改用户默认表空间
alter user HRTEST default tablespace TESTO;

删除用户:

drop user if exists HRTEST;--CASCADE会级联删除用户下的数据库对象信息(慎用!)
drop user if exists HRTEST cascade;

如果不小心忘记了SYSDBA用户口令,可以通过以下两种方法解决:

  1. 通过其他有ALTER USER权限的用户来重置SYSDBA用户口令。

  2. 数据库提前打开了操作系统认证参数 ENABLE_LOCAL_OSAUTH。该参数为静态隐含参数,需要DBA权限修改,修改后重启数据库生效。

资源限制

查看用户的资源限制:

select p.username,t.failed_num,t.failed_attemps, 
t.life_time,t.lock_time,t.sess_per_user
from sysusers t,dba_users p where t.id=p.user_id;select * from sysusers;

有两种方式可以限制用户资源。一是使用LIMIT子句,二是通过Profile管理用户资源。

通过LIMIT子句限制用户失败的次数:

alter user HRTEST limit failed_login_attemps 5, password_lock_time 3;

通过Profile限制用户资源:

create profile PROF_LOGIN_01 limit failed_login_attemps 5, password_lock_time 3, password_life_time 180; alter user HRTEST profile PROF_LOGIN_01;

查询用户的Profile资源限制信息:

select a.pid profile_id, b.name profile_name, a.uid userid, c.name username
from sysuserprofiles a, sysobjects b, sysobjects c
where a.pid = b.id and a.uid = c.id;select * from dba_profiles;
select * from sysusers;

🕷 特殊字符口令:如果用户口令中含有单引号、双引号、$等特殊字符,Linux命令行中可以使用反斜杠进行转义。

权限管理

查询用户所拥有的权限:

select * from dba_sys_privs where grantee='HRTEST';
select * from dba_tab_privs where grantee='HRTEST';
select * from dba_role_privs where grantee='HRTEST';

一般权限

授予和撤销用户的数据库系统权限:

grant create table to HRTEST;
revoke create table from HRTEST;

授予和撤销用户的数据库对象权限:

--授予/撤销表对象权限
grant select,update,insert,delete on DMHR.EMPLOYEE to HRTEST;
revoke select,update,insert,delete on DMHR.EMPLOYEE from HRTEST;--授予/撤销列对象权限
grant select(employee_id,employee_name) on DMHR.EMPLOYEE to HRTEST;
revoke select(employee_id,employee_name) on DMHR.EMPLOYEE from HRTEST;

赋予对象权限时加上 WITH GRANT OPTION 表明权限可以转授。这种赋权撤销时需要加上 CASCADE 关键字。

grant select on DMHR.EMPLOYEE to HRTEST with grant option;--撤销权限报错
revoke select on DMHR.EMPLOYEE from HRTEST;--撤销权限成功
revoke select on DMHR.EMPLOYEE from HRTEST cascade;

特殊权限

默认不能授予用户在其他用户模式下的DDL权限(即使是SYSDBA也不行)。

--授权成功
grant select any table to HRTEST;--授权失败,报错 Grantor no granted privilege
grant create any table,create any index to HRTEST;

该限制由参数ENABLE_DDL_ANY_PRIV控制,默认为0。

select * from v$parameter where name='ENABLE_DDL_ANY_PRIV';--放开DDL的ANY权限限制
alter system set 'ENABLE_DDL_ANY_PRIV'=1 both;--授权成功
grant create any table,create any index to HRTEST;

角色管理

角色是权限的集合。达梦数据库中包含以下几种角色:

  • DBA:拥有除审计和强制访问控制之外的所有权限,默认给SYSDBA用户。
  • PUBLIC:具有对当前模式下对象的DML权限。
  • RESOURCE:具有在当前模式下的DDL权限(建表、索引、视图等)。
  • SOI:具有查询sys开头的系统表的权限。
  • VTI:具有查询v$开头的动态性能视图的权限。
  • DB_AUDIT_开头的:审计相关的权限集合,默认给SYSAUDITOR用户。
  • DB_POLICY_开头的:安全相关的权限集合,默认给SYSSSO用户。

如果查询时收到报错:没有[V$CIPHERS]对象的查询权限,可以授予用户VTI角色。

查询角色信息:

select * from dba_roles;

通过角色授权:

--定义角色
create role R1;
grant create table to R1;
grant select on dmhr.employee to R1;--通过角色授予权限
grant R1 to HRTEST;
grant R1 to HRAPP;

禁用/启用角色:

--禁用角色
call SP_SET_ROLE('R1',0);--启用角色
call SP_SET_ROLE('R1',1);

http://www.ppmy.cn/news/1404970.html

相关文章

Linux(05) Debian 系统修改主机名

查看主机名 方法1:hostname hostname 方法2:cat etc/hostname cat /etc/hostname 如果在创建Linux系统的时候忘记修改主机名,可以采用以下的方式来修改主机名称。 修改主机名 注意,在linux中下划线“_”可能是无效的字符&…

elment UI el-date-picker 月份组件选定后提交后台页面显示正常,提交后台字段变成时区格式

需求&#xff1a;要实现一个日期的月份选择<el-date-picker :typeformData.dateType :value-formatdateFormat v-modelformData.leaveFactoryDateplaceholder选择月份></el-date-picker>错误示例&#xff1a;将日期显示类型(type)dateType或将日期绑定值的格式(val…

Linux网络编程一(协议、TCP协议、UDP、socket编程、TCP服务器端及客户端)

文章目录 协议1、分层模型结构2、网络应用程序设计模式3、ARP协议4、IP协议5、UDP协议6、TCP协议 Socket编程1、网络套接字(socket)2、网络字节序3、IP地址转换4、一系列函数5、TCP通信流程分析 第二次更新&#xff0c;自己再重新梳理一遍… 协议 协议&#xff1a;指一组规则&…

Android Studio学习7——常用控件view

Android控件 双击shift键——>搜索想要找的文件 Ctrlshift回车——>补全“&#xff1b;”号 CtrlX——>删除一行&#xff0c;只需把鼠标放在那一行 windows自带字体

深入探索Linux的lsof命令

在Linux系统中&#xff0c;了解哪些文件被哪些进程打开对于系统管理和问题诊断是极其重要的。这正是lsof命令&#xff0c;即List Open Files&#xff0c;发挥其强大功能的场景。本文旨在详细介绍lsof的起源、底层原理、参数意义&#xff0c;常见用法&#xff0c;并详解其返回结…

Hive初始化元数据库(默认是derby数据库)时候出现缺少方法的错误com.google.common.base.Preconditions

错误的出现&#xff1a; 下载好hive后&#xff0c;初始化元数据库&#xff08;使用内置derby数据测试&#xff09;&#xff0c;出现报错 初始化hive元数据&#xff1a;schematool -dbType derby -initSchema 这个原因是与 Hive 和 Hadoop 版本的 Guava 版本不一样导致的。 解决…

CSS层叠样式表学习(2)

&#xff08;大家好&#xff0c;今天我们将继续来学习CSS&#xff08;2&#xff09;的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 目录 二、CSS基础选择器 2.1 CSS选择器的作用 2.2 选择器分类 2.3 标签选择器 2.…

动态规划(Dynamic Programming)详解

动态规划&#xff08;Dynamic Programming&#xff0c;简称DP&#xff09;就像是个聪明的厨师&#xff0c;他懂得怎样把一道复杂的菜肴分成一小块一小块来做&#xff0c;而且他知道怎么利用之前做好的部分&#xff0c;避免重复劳动&#xff0c;最后拼凑成美味佳肴。 比如&…

Debian 配置国内软件源

为什么需要&#xff1f; Debian安装好之后默认是没有软件源的&#xff0c;只能通过本身的光盘上的软件进行安装&#xff0c;这样明显是不能够满足我们的需要的&#xff0c;考虑到国内的上网速度以及环境&#xff0c;配置一个国内的阿里镜像源是最好的选择。 使用 sudo vim /…

更高效、更简洁的 SQL 语句编写丨DolphinDB 基于宏变量的元编程模式详解

元编程&#xff08;Metaprogramming&#xff09;指在程序运行时操作或者创建程序的一种编程技术&#xff0c;简而言之就是使用代码编写代码。通过元编程将原本静态的代码通过动态的脚本生成&#xff0c;使程序员可以创建更加灵活的代码以提升编程效率。 在 DolphinDB 中&#…

Python中主要数据结构的使用

文章目录 数组队列 queue双端队列 deque栈 stack优先队列 priority_queue集合 set映射/字典 map 数组 使用内置类型list实现&#xff0c;主要有如下操作&#xff1a; array [] array.append(1) length len(array) if not array:# 列表为空print("array is empty"…

QT使用数据库和proC数据库

一&#xff0c;QT使用数据库 数据库就是保存数据的文件。可以存储大量数据&#xff0c;包括插入数据、更新数据、截取数据等。用专业术语来说&#xff0c;数据库是“按照数据结构来组织、存储和管理数据的仓库”。 什么时候需要数据库&#xff1f;在嵌入式里&#xff0…

Zookeeper脑裂解决方案

Zookeeper脑裂原因&#xff1a; 主要原因是Zookeeper集群和Zookeeper client判断超时并不能做到完全同步&#xff0c;也就是说可能一前一后&#xff0c;如果是集群先于client发现&#xff0c;那就会出现上面的情况。同时&#xff0c;在发现并切换后通知各个客户端也有先后快慢…

【C++】哈希之位图

目录 一、位图概念二、海量数据面试题 一、位图概念 假如有40亿个无重复且没有排序的无符号整数&#xff0c;给一个无符号整数&#xff0c;如何判断这个整数是否在这40亿个数中&#xff1f; 我们用以前的思路有这些&#xff1a; 把这40亿个数遍历一遍&#xff0c;直到找到为…

隐私计算实训营第七讲-隐语SCQL的架构详细拆解

隐私计算实训营第七讲-隐语SCQL的架构详细拆解 文章目录 隐私计算实训营第七讲-隐语SCQL的架构详细拆解1.SCQL Overview1.1 多方数据分析场景1.2 多方数据分析技术路线1.2.1 TEE SQL方案1.2.2 MPC SQL方案 1.3 Secure Collaborative Query Language(SCQL)1.3.1 SCQL 系统组件1.…

C#字典学习笔记

using System; using System.Collections.Generic;class Program {private static Dictionary<string, string> myDictionary new Dictionary<string, string>();//字典索引必须是唯一的&#xff0c;值可以不是static void Main(){// 向静态成员 myDictionary 添加…

图论做题笔记:dfs

Leetcode - 797&#xff1a;所有可能的路径 题目&#xff1a; 给你一个有 n 个节点的 有向无环图&#xff08;DAG&#xff09;&#xff0c;请你找出所有从节点 0 到节点 n-1 的路径并输出&#xff08;不要求按特定顺序&#xff09; graph[i] 是一个从节点 i 可以访问的所有节…

【系统架构设计师】- 知识点汇总(易错总结)

—————————————————————————————————— 一、函数依赖的推理规则&#xff1a; 1、自反律&#xff1a;若Y⊆X⊆U&#xff0c;则X→Y在R上成立。 2、增广律&#xff1a;若X→Y在R上成立&#xff0c;且Z⊆U&#xff0c;则XZ→YZ在R上也成立。 3、传…

接口自动化框架搭建(一):框架介绍

1&#xff0c;背景目的 最近在搭建接口自动化框架&#xff0c;打算写个专栏&#xff0c;方便自己查找和他人学习。有不正确的地方&#xff0c;欢迎指正。 2&#xff0c;技术框架 pythonpytestalllurejenkins多进程钉钉消息通知 3&#xff0c;版本 推荐方法&#xff1a;创建…

数据结构(初阶)第一节:数据结构概论

本篇文章是对数据结构概念的纯理论介绍&#xff0c;希望系统了解数据结构概念的友友可以看看&#xff0c;对概念要求不高的友友稍做了解后移步下一节&#xff1a; 数据结构&#xff08;初阶&#xff09;第二节&#xff1a;顺序表-CSDN博客 正文 目录 正文 1.数据结构的相关概…