gbase8s用户管理

时间:2024-10-15 22:02:07

gbase8s支持操作系统用户以及内部用户

基本架构如下

根据上图所示,在 gbase8s中有三种用户模式

1 操作系统用户

使用useradd直接创建,授予权限即可使用

2 操作用户作为内部用户的代理用户,根据代理用户直接创建内部用户

3 操作用户作为内部用户的代理用户,根据代理用户创建模版用户,以模版用户作为基础创建内部用户

用户信息保存在 sysuser 库下系统表中以及业务库的部分系统表中

第一种用户的创建方式

直接使用操作系统命令

useradd user1

passwd user1

第二种用户的创建方式

1 先创建操作系统代理用户

useradd user_agent

passwd user_agent

2 开启数据库参数以支持内部用户

2.1 onmode -wf USERMAPPING=ADMIN

2.2 检查是否存在 /etc/gbasedbt/allowed.surrogates文件,不存在则创建 权限为root:gbasedbt 

2.3 将代理用户写入此文件

echo "users:user_agent" > allowed.surrogates

echo "groups:user_agent" >> allowed.surrogates

如果有需要可以指定多个代理用户,例如 users:usera,userb,userc...

2.4 将文件用户信息加入数据库内存中

onmode -cache surrogates

2.5 创建内部用户(将user02映射到user_agent用户上)

dbaccess - -<<!

create user user02 with password '123456' properties user user_agent group (user_agebt 用户的group id)  home '/home/user_agent';

!

第三种用户的创建方式

1 同第二种方式的前四步

2 创建模版用户

dbaccess - -<<!

create default user with properties user user_agent group  (user_agebt 用户的group id) home '/home/user_agent';

!

3 以模版用户为基础创建内部用户

dbaccess - -<<!

create user user03 with password '123456';

!

如果不创建模版用户直接创建内部用户,并且不映射到代理用户时,服务器将返回错误

26707: 无法创建用户 (user03),因为该用户未映射到任何属性。

在同一台服务器中有多个实例则 多实例可以共享/etc/gbasedbt/allowed.surrogates文件

其中第二种与第三种方式的区别在于

第二种方式每创建一个用户都必须映射到代理用户上,而第三种以模版用户为基础,因为模版用户指定了代理用户,所以每次创建内部用户时无需指定代理用户,此时的create user的语法更有普遍性