kingbase修改权限实现方式
作者:wz25006
该文章详细介绍了如何在数据库中创建用户并赋予其相应的权限,包括创建用户、回收默认权限、创建数据库、赋权数据库权限、创建只读用户以及回收权限等步骤
前言
创建用户后对数据库对象的读写权限进行修改
使用步骤
1、创建用户
create user cspassword ‘123123';
2、回收DEFAULT PRIVILEGES权限
–all TABLES ALTER DEFAULT PRIVILEGES for user csREVOKE ALL ON TABLES FROM PUBLIC;
4、创建数据库
CREATE DATABASE wan ENCODING ‘UTF8' TEMPLATE template0;
5、回收其它库的连接权限
select datname from sys_database; select ‘REVOKE ALL on DATABASE ' || datname || ' FROM PUBLIC;' from sys_database where datname not in(‘test',‘template0',‘template1'); select ‘REVOKE ALL on DATABASE ' || datname || ' FROM cs;' from sys_database where datname not in(‘test',‘template0',‘template1');
6、赋权数据库权限
GRANT ALL ON DATABASE wan TO cs;
7、赋权增,删,改,查
GRANT SELECT,UPDATE,INSERT,DELETE,TRUNCATE,REFERENCES,TRIGGER ON ALL TABLES in SCHEMA public to cs;
8、对新建表拥有权限
ALTER DEFAULT PRIVILEGES IN SCHEMA sch_kcm grant SELECT,INSERT,UPDATE,DELETE,TRUNCATE,REFERENCES,TRIGGER on tables to cs;
创建只读用户:
CREATE USER readonly WITH ENCRYPTED PASSWORD ‘readonly';
设置默认事务只读:
alter user readonly set default_transaction_read_only=on;
赋予用户连接数据库mytest的权限:
GRANT CONNECT ON DATABASE mytest to readonly;
切换到指定库mytest:
\c mytest system
赋予用户表、序列查看权限,进入指定db运行:
把当前库现有的所有在public这个schema下的表的使用权限赋给用户readonly
GRANT USAGE ON SCHEMA public to readonly;
默认把当前库之后新建在public这个schema下的表的使用权限赋给readonly
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly;
赋予用户readonly所有public下的序列的查看权
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO readonly;
赋予用户readonly所有public下的表的select权
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
将刚才赋予的权限一一回收
回收schema的usage权限
revoke USAGE ON SCHEMA public from readonly;
回收public下所有表的查询权限:
revoke SELECT ON ALL TABLES IN SCHEMA public from readonly;
回收public下所有序列的查询权限
revoke SELECT ON ALL SEQUENCES IN SCHEMA public from readonly;
回收默认权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public revoke SELECT ON TABLES from readonly;
关闭数据库连接权限
revoke CONNECT ON DATABASE foo from readonly;
关闭默认只读事务设置
alter user readonly set default_transaction_read_only=off;
查看权限是否为空了
\ddp
通过管理员删除readonly用户:
drop user readonly;
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
