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

相关推荐
gma99916 分钟前
Etcd 框架
数据库·etcd
爱吃青椒不爱吃西红柿‍️19 分钟前
华为ASP与CSP是什么?
服务器·前端·数据库
Yz98761 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
苏-言1 小时前
Spring IOC实战指南:从零到一的构建过程
java·数据库·spring
Ljw...1 小时前
索引(MySQL)
数据库·mysql·索引
菠萝咕噜肉i1 小时前
超详细:Redis分布式锁
数据库·redis·分布式·缓存·分布式锁
长风清留扬1 小时前
一篇文章了解何为 “大数据治理“ 理论与实践
大数据·数据库·面试·数据治理
OpsEye2 小时前
MySQL 8.0.40版本自动升级异常的预警提示
数据库·mysql·数据库升级
Ljw...2 小时前
表的增删改查(MySQL)
数据库·后端·mysql·表的增删查改
远歌已逝5 小时前
维护在线重做日志(二)
数据库·oracle