首页 > 数据库 >高斯数据库HCNA之权限控制

高斯数据库HCNA之权限控制

时间:2023-11-14 22:32:11浏览次数:50  
标签:高斯 角色 数据库 smith 用户 授予 HCNA 权限 name

一、用户权限控制

1、用户、角色、权限

1.1、权限

权限是什么
执行某些特定SQL语句的能力以及访问或维护某一特定对象的能力

权限的类型
系统权限
作用:用户可以执行一类特定的SQL语句
例如:用户A想要连接数据库,则用户A需要有CREATE SESSION系统权限
对象权限
作用:用户可以访问或维护某一特定对象
例如:用户A访问用户B的表C,则用户A需要有表C的SELECT对象权限

1.2、系统权限

系统权限是什么
用户进行系统操作的能力
用户可以执行一类特定的SQL语句

高斯数据库HCNA之权限控制_数据库

1.3、对象权限

对象权限是什么
对数据库对象执行各种操作的能力
用户可以访问或维护某一特定对象

高斯数据库HCNA之权限控制_系统权限_02

1.4、角色

角色是什么
角色是一组命名的权限的集合,数据库使用角色进行权限组织及划分

意义
一个数据库可能有多个用户需要访问,为了方便管理,可以先将权限分组,并授予给角色,每一个权限组对应一个角色
对于不同权限级别的用户,可以将对应的角色授权用户,相当于批量授予用户需要的权限,而不需要逐个授予权限

注意
角色不属于任何用户
角色不能登录数据库和执行SQL语句操作
角色在系统中必须是唯一的

1.5、角色的创建

语法
CREATE ROLE
注意事项
执行该语句的用户需要有CREATE ROLE系统权限
角色名不能与数据库中已有的用户名和角色名重名,否则会提示错误信息

系统预置角色
DBA 系统管理员角色
RESOURCE 创建基础对象的角色
CONNECT 连接角色
STATISTICS 统计角色

创建角色的语法格式
CREATE ROLE role_name;
主要参数说明
role_name:创建的角色名
示例
创建角色teacher
CREATE ROLE teacher;

1.6、角色的删除

语法
DROP ROLE
注意事项
执行该语句的用户需要有DROP ANY ROLE系统权限,或者是该角色的创建者,或者被授予该角色并携带WITH ADMIN OPTION属性
如果角色不存在,会提示错误信息
角色被删除时,将该角色具有的权限从被授予该角色的用户或者其他角色上回收

删除角色的语法格式
DROP ROLE role_name;
主要参数说明
role_name:要删除的角色名
示例:
删除角色teacher
DROP ROLE teacher;

1.7、用户

数据库用户的主要用途
连接数据库
访问数据库对象和执行SQL语句

默认情况下,GaussDB 100的用户可以分为三类
系统管理员
安全管理员
普通用户

注意
在连接数据库时,必须使用一个已经存在的数据库用户
一个用户可以建立多个连接

1.8、用户的创建

语法: CREATE USER
注意事项:
执行该语句的用户需要有CREATE USER系统权限
用户名不能和数据库中已存在的用户名和角色名重复
创建用户时,需要指定用户名和密码
SYS用户和PUBLIC用户不允许创建,是系统预置用户

创建用户的常用语法格式
CREATE USER user_name IDENTIFIED BY password;
设置用户名时,需遵循如下规范
用户名不允许包含以下特殊字符
分号(;)、竖线(|)、反引号(``)、美元符($)、位运算(&)、大于号(>)、小于号(<)、双引号("")、单引号('')、感叹号(!)、空格和版权符号(©)
用双引号或者反引号括起来也不可以
若用户名包含以上禁止特殊字符以外的其他特殊字符时。必须用双引号("")或者反引号(``)括起来

设置用户名密码时,需遵循如下规范
密码长度必须大于等于8个字符,小于等于64个字符
若密码不以单引号括起来,则密码首字符必须是字母、#号或下划线
密码不能与用户名或者用户名的倒序相同(校验时,不区分大小写)
密码只能包含如下4中类型,并且至少选取其中3种类型的组合
  字母、小写字母、大写字母、空格或特殊字符(GaussDB 100支持的特殊字符列表,参考特殊字符表)
创建密码时,若密码中包含_#$以外的特殊字符或者空格,则密码必须用单引号括起来
若创建的密码中包含特殊字符$,通过zsql连接数据库时密码在单引号里面$不需要使用\转义字符转义,密码不在单引号里面$需要使用\转义字符转义,否则会登录失败

密码可用的特殊字符表

示例
创建用户smith,密码为database_123
create user smith identified by database_123;

高斯数据库HCNA之权限控制_数据库_03

1.9、用户的修改

语法
ALTER USER
注意事项
执行该语句的用户需要有ALTER USER系统权限
如果执行的用户不存在,会提示错误信息

应用场景
修改用户密码
手动锁定用户或给用户解锁
给用户指定配置档案
定义用户默认表空间

修改用户密码的语法格式
ALTER USER user_name IDENTIFIED BY new_password;
主要参数说明
user_name 要修改的用户名
new_password 新的用户密码

示例
将用户smith的密码修改为database_456
ALTER USER smith IDENTIFIED BY database_456;

1.10、用户的删除

语法
DROP USER
注意事项
执行该语句的使用需要有DROP USER系统权限
不能删除当前正在与数据库相连的用户
SYS用户和PUBLIC用户不允许删除,是系统预置用户
请谨慎使用删除用户操作,即使删除过程中断,已经删除的对象也无法恢复,建议先删除该用户创建的数据库对象,再删除用户

删除用户的语法格式
DROP user [ if exists ] user_name [ CASCADE ];
主要参数说明:
user_name:要删除的用户名
if exists:要删除的用户是否存在
不指定if exists选项时,如果要删除的用户不存在,会提示错误信息
指定if exists选项时,如果要删除的用户不存在,直接返回执行成功,用户存在则删除该用户

主要参数说明
CASCADE
不指定CASCADE选项时,如果要删除的用户中还有数据库对象没有删除,会提示错误信息
如果指定CASCADE选项,删除该用户时,会同步强制删除属于该用户的数据库对象

示例
删除用户smith,
drop user if exists smith cascade;

1.11、用户、角色和权限关系

用户、角色和权限的关系
用户可定义角色,角色为多个权限的集合
角色赋予用户或其他角色,则用户或其他角色拥有了此角色的所有权限
角色的权限可以继承

高斯数据库HCNA之权限控制_数据库_04

2、授权

2.1、授权

授权是什么
将权限或角色授予给用户或其他角色
授权的语法
GRANT

高斯数据库HCNA之权限控制_数据库_05

2.2、系统权限的授予

常用的语法格式
GRANT system_privilege_name TO grantee [ WITH ADMIN OPTION ];
主要参数说明
system_privilege_name:系统权限名
grantee:被授予的用户或角色
WITH ADMIN OPTION:被授予的用户或橘色可将所获得的系统权限再次授予其他用户或角色

如果是授予系统权限,执行该语句用户需要满足如下条件之一
已被授予该系统权限,并有WITH ADMIN OPTION属性
已被授予GRANT ANY PRIVILEGE系统权限

示例
向用户smith授予CREATE SESSION系统权限,smith还可将此权限授予给其他用户或角色
grant create session to smith with admin option;

2.3、对象权限的授予

常用语法格式:
GRANT object_privilege_name ON object_name TO grantee [ WITH GRANT OPTION ];
主要参数说明
object_privilege_name:对象权限么
object_name:对象名
grantee:被授予对象权限的用户或角色
WITH GRANT OPTION:被授予的用户可将获得的对象权限再次授予其它用户或角色

如果是授予对象权限,执行该语句用户需要满足如下条件之一
已被授权该对象权限,并有WITH GRANT OPTION属性
已被授予GRANT ANY OBJECT PRIVILEGE系统权限
是该对象的创建者

示例
向用户smith授予表table1的SELECT对象权限,smith还可将此对象权限授予给其他用户或角色
GRANT SELECT ON table1 TO smith WITH GRANT OPTION;

注意
系统权限、角色和对象权限的授予都要遵循最小化使用原则

2.4、角色的授予

常用的语法格式
GRANT role_name TO grantee [ WITH ADMIN OPTION ]

主要参数说明
role_name:角色名
grantee:被授予的用户或角色
WITH ADMIN OPTION:被授予的用户或角色可将所获得的角色再次授予其他用户或角色

如果是授予角色,执行该语句用户需要满足如下条件之一
已授予该角色,并有WITH ADMIN OPTION属性
已被授予GRANT ANY ROLE系统权限
是该角色的创建者
示例
向用户smith授予teacher角色,smith还可将此角色授予给其他用户或角色
GRANT teacher TO smith WITH ADMIN OPTION;

3、权限回收

3.1、权限回收

权限回收是什么
将权限或角色从授权者回收

权限回收的语句
REVOKE

3.2、角色回收

常用的语法格式
REVOKE role_name FROM revokee;
如果回收角色,执行REVOKE操作的用户需要满足如下条件之一
已被授予该角色,且授权时携带WITH ADMIN OPTION属性
已被授予GRANT ANY ROLE系统权限
是被回收角色的创建者

示例
回收用户smith的teacher角色
REVOKE teacher FROM smith;

3.3、系统权限的回收

常用的语法格式
REVOKE system_privilege_name FROM revokee;
如果回收系统权限,执行REVOKE操作的用户需要满足如下条件之一
已被授予要被收回的该系统权限,且授权时携带WITH ADMIN OPTION属性
已被授予GRANT ANY PRIVILEGE系统权限

示例
回收用户smith的CREATE SESSION系统权限
REVOKE CREATE SESSION FROM smith;

3.4、对象权限的回收

对象权限的回收1
常用的语法格式
REVOKE object_privilege_name ON object_name from revokee;
主要参数说明
object_privilege_name:对象权限名
object_name:对象名
revokee:被回收对象权限的用户或角色

对象权限的回收2
如果回收对象权限,执行REVOKE操作的用户需要满足如下条件之一
已被授权该对象权限,且授权时携带WITH GRANT OPTION属性
是回收该对象的创建者
示例:
回收用户smith在表table1上的SELECT对象权限
REVOKE SELECT on table1 from smith;
注意:
系统权限、角色和对象权限在不使用时需及时回收

3.5、用户、角色和权限的示例

用户、角色和权限的示例
创建用户smith,密码为database_123
create user smith identified by database_123;
创建角色manager
create role manager;
授予角色manager系统权限
grant create session,create user to manager;
授予角色manager对象权限
grant select,insert on staffs to manager;
将角色manager授予用户smith
grant manager to smith;


标签:高斯,角色,数据库,smith,用户,授予,HCNA,权限,name
From: https://blog.51cto.com/u_13236892/8379767

相关文章

  • 数据库操作入门:PyMongo 和 MongoDB 的基本用法
    MongoDBMongoDB是一种流行的NoSQL数据库,它将数据存储在类似JSON的文档中,使数据库非常灵活和可扩展PyMongoPython需要一个MongoDB驱动程序来访问MongoDB数据库。在本教程中,我们将使用MongoDB驱动程序"PyMongo"。建议使用PIP来安装"PyMongo",确保您的Python环境已安装PIP。在命......
  • openGauss学习笔记-123 openGauss 数据库管理-设置账本数据库-账本数据库概述
    openGauss学习笔记-123openGauss数据库管理-设置账本数据库-账本数据库概述123.1背景信息账本数据库融合了区块链思想,将用户操作记录至两种历史表中:用户历史表和全局区块表。当用户创建防篡改用户表时,系统将自动为该表添加一个hash列来保存每行数据的hash摘要信息,同时在blockc......
  • Oracle启动数据库报ORA-01102解决办法
    1.机器启动之后登录服务器使用sqlplus/assysdba登录数据库发现数据库并没有启动之前把数据库服务添加过开机自启动![在这里插入图片描述](https://img-blog.csdnimg.cn/c25a5e40f3274621b708d974065bf650.png)2.使用startup命令启动数据库报错了SYS@orcl>startup;ORACLE例程已......
  • HackerGPT 黑客技术、工具和策略的广泛数据库AI
    黑客GPTHackerGPT是您在黑客世界中黑客的数字伙伴。这款人工智能助手在设计时考虑到了黑客黑客的独特需求,黑客知识和帮助的最前沿。HackerGPT配备了包含黑客技术、工具和策略的广泛的数据库,它不仅仅是一个信息资源,它还是您黑客之旅的积极参与者。无论您是想要学习技巧的初学者,......
  • Windows下如何快速移动MySQL/MariaDB数据库文件
    近期遇到一个要迁移数据库的问题,用户说不希望数据库文件存在于C盘。查了一下资料,这里做个总结。这个方法适用于MySQL和MariaDB。 步骤如下:1、停止数据库服务2、将数据库移动到需要迁移的路径3、修改安装路径data目录下的my.ini文件4、将 datadir=xxx改成需要迁移的路径5......
  • mongo数据库
    在k8s安装mongo数据库时,新版本(测试为7.0.2版本)的mongo的根用户和根用户密码的环境变量变了,现在是MONGODB_ROOT_USER和MONGODB_ROOT_PASSWORD而不是之前的MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD使用这两个环境变量会认证失败。......
  • 数据库 常用,字符串类型 数据转换成date 类型数据
      数据库中 时间是用:VARCHAR2  字符串类型数据:20231226  来显示 '20231226'char字符串转换成date类型时间selectto_date(字段名,'yyyy-MM-dd')fromxx转换后,显示成:'2023-12-2600:00:00.000'  ......
  • 大型数据库实验五
    ......
  • 世界土壤数据库(HWSD)土壤数据集
    简介:HWSD(HarmonizedWorldSoilDatabase)是联合国粮食及农业组织(FAO)和国际土壤参考与信息中心(ISRIC)共同开发的世界土壤数据集。该数据集是一份高分辨率(1km),全球范围的土壤数据库,包括有关土壤类型、土壤属性、土壤质地、土层深度和土壤水分等方面的信息。HWSD数据集是基于大量地面测......
  • 关于sql server 只能查看特定数据库的某张表
    1.正常新建登录名--》在需要设置的数据库中新建用户(用户名和登录名一致、默认架构选择dbo)-->在对应的表或者存储过程给到对应的权限新建登录名新建数据库用户设置表对应的权限其他数据库无权限(但是其他数据库名称可以查看这一点怎么去避免)2.给public角色的访问任意......