南大通用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技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

相关推荐
MuYiLuck4 分钟前
【redis实战篇】第八天
数据库·redis·缓存
睡觉待开机5 分钟前
6. MySQL基本查询
数据库·mysql
大熊猫侯佩1 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(三)
数据库·swiftui·swift
大熊猫侯佩1 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(二)
数据库·swiftui·swift
大熊猫侯佩1 小时前
用异步序列优雅的监听 SwiftData 2.0 中历史追踪记录(History Trace)的变化
数据库·swiftui·swift
大熊猫侯佩1 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(一)
数据库·swiftui·swift
Ares-Wang1 小时前
负载均衡LB》》HAproxy
运维·数据库·负载均衡
AI.NET 极客圈1 小时前
.NET 原生驾驭 AI 新基建实战系列(四):Qdrant ── 实时高效的向量搜索利器
数据库·人工智能·.net
weixin_470880262 小时前
MySQL体系架构解析(二):MySQL目录与启动配置全解析
数据库·mysql·面试·mysql体系架构·mysql bin目录
英英_2 小时前
MySQL 日志数据同步的详细教程
数据库·mysql