南大通用GBase 8s数据库用户管理:新建与授权全攻略(下)

原文链接:www.gbase.cn/community/p...

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

继上一篇文章介绍了如何在南大通用GBase 8s数据库中创建操作系统用户之后,本文将带您了解如何在GBase 8s中创建非操作系统数据库用户。非操作系统数据库用户指数据库内部用户,仅仅需要一个操作系统用户跟数据库用户做映射,这种类型的用户创建方式为用户提供了更高的灵活性,及更多的应用场景。当然与上文相同,主备集群部署的环境,主备节点都要做相应操作。

一、创建非操作系统数据库用户

数据库映射用户;

1、首先创一个操作系统用户。

bash 复制代码
useradd gbasetest
passwd gbasetest /gbasetest

2、修改allowed.surrogates配置文件,该配置文件在数据库软件安装目录etc下,修改将std文件拷贝至/etc/gbasedbt目录下,需要root用户属组,需要600权限;修改最后(user: gbasetest group: gbasetest)。

3、使用gbasedbt用户执行

复制代码
onmode -cache surrogates

(注意看日志,是否成功)

正常提示日志为:

sql 复制代码
Entries in the surrogates file /etc/gbasedbt/allowed.surrogates are loaded into surrogate cache.

4、登陆数据库系统库,执行dbaccess sysuser,可以使用两种方式,一是建立默认映射应用,另一种是每次添加用户的时候指定映射用户,推荐直接设置默认映射用户。

A)CREATE DEFAULT USER WITH PROPERTIES USER 'gbasetest';

之后直接dbaccess sysuser

执行

sql 复制代码
CREATE USER zwq1 WITH PASSWORD "GBase001"; 

创建用户即可。

B)不创建默认组,

执行

sql 复制代码
create user zwqtest1 with password "GBase001" properties user "gbasetest";

直接创建成功用户;

5、执行grant resource to gbasetest01;进行授权;

之后可以使用gbasetest01登录数据库,并连接对应数据库,具有相应权限;

重新设置用户密码方法:

执行sql:set user password old "XXXXXXXX" new "XXXXXXXXX"-----这种方法是想要修改哪个用户的密码用哪个用户登陆执行即可

执行sql:alter user xxzxnbgl modify password '1qaz@WSXqwe'-----这种方法是使用gbasedbt用户登陆,修改任意用户密码

二、给用户赋SELECT(只读)权限

1、进入数据库,给用户赋connect权限

(dbaccess 数据库名 -)

sql 复制代码
GRANT CONNECT TO user1;

2、在数据库中创存储过程

注:需要回收权限的表的owner(即创建该表的用户)是哪个,就用该用户创建并执行下面的存储过程,如果一个数据库中存在多个用户创建的表,则需要分别用每个用户创建一次以下存储过程并执行(可将存储过程名,如chm1,,chm2...),查询每个表的owner可用

csharp 复制代码
select tabname,owner from systables where tabid>99 

查询获得。

存储过程内容:

sql 复制代码
drop procedure if exists chm;
create procedure chm(username varchar(255))
returning varchar;
define tname varchar(255);
define towner varchar(255);
define gsql varchar(255);
define rmsql varchar(255);
foreach cur for select tabname  ,owner into tname, towner from systables where tabid > 99 and tabtype<>'s'
  let rmsql ="REVOKE ALL ON " || tname || " FROM PUBLIC";
 execute immediate rmsql;
  let gsql = "grant select on "  || tname || " to " || username || " as " ||  towner;
 execute immediate gsql;
end foreach;
end procedure;

3、执行存储过程为每张表赋select权限。

sql 复制代码
execute procedure chm('user1');

通过本文的介绍,我们了解到在GBase 8s数据库中创建非操作系统数据库用户的过程。这种方法提供了一种强大的方式来管理数据库访问权限,确保了数据的安全性和合规性。结合上一篇文章中介绍的操作系统用户创建方法,可以满足不同场景下的数据库用户���理需求。我们希望这两篇文章能够帮助数据库管理员更有效地进行用户管理工作,确保企业数据资产的安全。

原文链接:www.gbase.cn/community/p...

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

相关推荐
TDengine (老段)39 分钟前
TDengine IDMP 基本功能(3.数据三化处理)
大数据·数据库·物联网·ai·语言模型·时序数据库·tdengine
GreatSQL2 小时前
GreatSQL备份报错"PROCESS权限不足"分析与解决
数据库
言笑非2 小时前
ClickHouse物化视图
数据库
专注VB编程开发20年2 小时前
C#教程之NPOI读写excel文件XLS,XLSX格式
数据库·microsoft·c#·excel·xlsx·xls
winfield8213 小时前
间隙锁(Gap Lock)
数据库·mysql
TDengine (老段)13 小时前
TDengine IDMP 快速体验(方式二 通过 docker)
大数据·数据库·docker·ai·时序数据库·tdengine·涛思数据
CANI_PLUS14 小时前
ESP32将DHT11温湿度传感器采集的数据上传到XAMPP的MySQL数据库
android·数据库·mysql
国王不在家17 小时前
3.5-非关系型数据库-反规范化-sql语言
数据库·nosql
Code季风18 小时前
如果缓存和数据库更新失败,如何实现最终一致性?
数据库·分布式·缓存·微服务·性能优化
Runing_WoNiu19 小时前
mysql 索引失效分析
数据库·mysql