greenplum 6 创建用户问题权限问题异常(创建只查视图用户)

greenplum 6 创建用户问题权限问题异常(创建只查视图用户)

  1. 解决普通用户默认无限制访问其它数据库问题;
  2. 解决普通用户可以无限制建表问题;
  3. 解决普通用户可以用navicat等工具查看系统原表问题;

背景:
我发现创建一个一个普通用户,在没有做特殊处理的情况下这个用户可以随意访问其它数据库,可以通过navicat 等工具随意查看库的表名、函数、视图名等信息(虽然不可编辑,但是也不想让外部无关人员看到无关信息)

参考的官方文档:
https://gpdb.docs.pivotal.io/6-10/ref_guide/sql_commands/CREATE_ROLE.html
https://gpdb.docs.pivotal.io/6-10/ref_guide/sql_commands/CREATE_RESOURCE_QUEUE.html
https://gpdb.docs.pivotal.io/6-10/ref_guide/sql_commands/GRANT.html#topic1

下面开始解决以上问题:

-- 回收数据库访问权限(限制普通用户访问指定数据库)
revoke connect on database gpdb from public;
revoke connect on database gpperfmon from public;
revoke connect on database postgres from public;
-- 或从 pg_hba.conf中限定
# TYPE     DATABASE     USER         ADDRESS                 METHOD
# host     viid         tydk         0.0.0.0/0               md5
--系统表权限清空:防止用户登录上去就能查看(限制普通用户通过navicat等工具查看无关信息)
revoke all on pg_class from public;
revoke all on pg_tablespace from public;
revoke all on pg_user from public;
revoke all on pg_roles from public;
-- 创建资源队列(连接数=3,最大内存使用:1024MB,优先级:{MIN|LOW|MEDIUM|HIGH|MAX})
DROP RESOURCE QUEUE test_queue;
create resource queue test_queue with (active_statements=3,MEMORY_LIMIT='1024MB',PRIORITY=MEDIUM);
-- 创建用户
CREATE USER test WITH PASSWORD 'test2020' resource queue test_queue;
--赋予访问权限
-- grant connect on database orcl to test; 
-- 设置用户事务只读(限制用户只能有select权限)
alter user test set default_transaction_read_only=on;
-- revoke create on schema public from test;
-- revoke all on database viid from test;
-- revoke all on schema public from test;
-- 创建视图
create view v_t_test_gb as select *  from t_test_gb where status='1' order by modifydate desc;
--赋予用户部分表查询权限
GRANT SELECT ON TABLE v_t_test_gb TO test;
-- 查询用户所有权限
SELECT * FROM information_schema.table_privileges WHERE grantee='test';

-- 回收用户所有权限
revoke all on database orclfrom test;
revoke all on all tables in schema public from test;

-- 或者删除授予用户的任何特权
DROP OWNED BY test;
DROP USER test;
客户端访问方式:
psql -h 127.0.0.1 -p 5432 -d orcl -U test -W;

java jdbc 访问方式:
spring.datasource.mpp.name=postgresql
spring.datasource.mpp.jdbc-url=jdbc:postgresql://127.0.0.1:5432/orcl
spring.datasource.mpp.driver-class-name=org.postgresql.Driver
spring.datasource.mpp.username=test
spring.datasource.mpp.password=test2020

<!-- postgresql-42.2.5.jar -->
<dependency>
	<groupId>org.postgresql</groupId>
	 <artifactId>postgresql</artifactId>
</dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋奴娇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值