kingbase修改权限实现方式
前言
创建用户后对数据库对象的读写权限进行修改
使用步骤
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;
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SQL中NTEXT字段内容显示<long text>的原因
SQL中NTEXT字段内容显示<long text>的原因...2007-03-03
在PostgreSQL的基础上创建一个MongoDB的副本的教程
这篇文章主要介绍了在PostgreSQL的基础上创建一个MongoDB的副本的教程,使在使用NoSQL的同时又能用到PostgreSQL中的东西,需要的朋友可以参考下2015-04-04
Doris报错:failed to send brpc when exchange的解决过程
Doris中出现"failedtosendbrpcwhenexchange"错误通常是由于BRPC通信异常导致的,可能的原因包括网络问题、BRPC配置不合理、节点负载过高、数据倾斜、节点状态异常和版本兼容性问题,通过排查网络、调整BRPC参数、优化SQL和表结构等方法可以解决该问题2025-11-11


最新评论