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

相关推荐
欢呼的太阳7 小时前
数据库设计Step by Step (10)——范式化
服务器·数据库·oracle
喜欢的名字被抢了8 小时前
MySQL基础入门:从零理解数据库与SQL
数据库·mysql·教程
Elastic 中国社区官方博客9 小时前
如何比较两个 Elasticsearch 索引并找出缺失的文档
大数据·运维·数据库·elasticsearch·搜索引擎
DLYSB_9 小时前
生命通道:如何用 HIS 医疗系统直连网络声光终端,打造“零延误”的危急值响应网关?
java·网络·数据库·报警灯
儒雅的大叔9 小时前
MySQL数据库InnoDB数据恢复工具使用总结
数据库·mysql·adb
观远数据10 小时前
ChatBI选型对比:从意图识别到SQL修复,六个维度打分决定是否值得投产
数据库·人工智能·sql
嘉&年华10 小时前
【第008篇】通过dexp和dimp命令导出和导入dmp文件(适用于达梦数据库)
数据库·sql
哥是强混11 小时前
Means:基于 .NET 10 打造的开源自部署 S3 兼容对象存储服务
网络·数据库·.net
ffqws_11 小时前
redis面试:如何保证双写一致
数据库·redis·缓存
水无痕simon11 小时前
6 数据库同义词
数据库