暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

用户、角色、模式管理

點點 2024-03-31
431

在kingbase数据库中用户=角色

用户用于访问、管理数据库对象:表、索引、视图、存储过程等

角色用于管理数据库的访问权限


用户和角色针对的是整个数据库集簇,而不是针对某个单一的数据库,当权限足够大时,可以访问所有数据库任意对象。数据库在初始化时默认创建system超级管理员用户

用户和角色区别

user:默认拥有login登入数据库、创建对象的权限,而角色默认没有login的权限

role:可以拥有数据库的对象,例如表、索引等,也可以将这些对象权限其赋予给其它角色,以控制哪些用户对哪些对象拥有哪些权限


创建用户、角色并授权

create user test superuser password '123';

create user test1 createdb password '123';

create role test2 encrypted password '123' valid until '2024-03-29';


#login、superuser、create role被视为特殊权限,并不会像其它用户普通权限一样可以被继承


通过sys_user可以查看所有用户包含的权限



修改用户、角色权限 

alter user test rename to test3;

alter user test1 createrole; 

alter role test2 login;


#除管理员用户外,只有具备createrole权限的用户可以修改其它用户的名字



授予用户role的权限

在授予角色权限时,非默认角色需要授权完成后需要set role name  使之生效,但创建完成后数据库属主归属test1,当前用户也会默认切换到test1下

grant test1 to abc;

  


删除用户、角色

drop user test1;

drop role  test2;

#超级用户可以删除超级用户,具有createrole权限的用户可以删除非超级用户以外的用户

#删除用户前需删除该用户依赖的对象、权限等

#删除组role时只会删除role角色本身,组成员并不会被删除

    


schema

初始化数据库时会自动创建一个公用的public模式,共享给所有用户,任何一个用户都可以在该模式下创建对象


一个用户可以创建或者拥有多个schema,但一个schema只能属于一个用户。普通用户创建模式需进行授权

grant create on database test to name1;

切换用户登入并创建schema

\c  - name1

create schema name1;



其它用户访问该用户下的模式时,需将模式的访问权限授权给其它用户

 


搜索路径search_path ,如果在前面的变量中找到对象,则会放弃对后面模式的搜索

test=> show search_path;
search_path
-----------------
"$user", public 

 

"$user", public:默认搜索和登入用户名一样的模式,若搜索不到则会搜索public

可临时修改search_path搜索路径进行查看,若public模式下存在同名表,则无法查看到abc模式下相同名字的表

 


查看所有表及对应模式

select a.relname,b.nspname from sys_class a,sys_namespace b where a.relnamespace=b.oid order by 1;










最后修改时间:2024-04-07 21:22:49
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论