gp常用的操作命令

  • 2020-05-18
  • 浏览 (164)

权限控制的代码,下载源代码,具体位置在:

src/backend/catalog/
aclchk.c pg_class_aclcheck

查看版本信息

SELECT version();

创建角色

create role admin createrole createdb login password 'bigdata@123';
create role test001 login password 'test'

删除角色

drop role test001

查看角色信息

SELECT * FROM pg_roles;

修改密码

alter role admin with password '123456';

增加远程访问权限

vim /data/master/gpseg-1/pg_hba.conf
host all admin 0.0.0.0/0 md5

允许所有用户远程访问

host all all 0.0.0.0/0 md5

在进行配置更改后重新加载postgresql.conf和pg_hba.conf文件,但不要关闭Greenplum数据库阵列:

gpstop -u

授权表空间pg_default的create权限给admin

GRANT CREATE ON TABLESPACE pg_default TO admin;

授权表空间pg_default的create权限给admin

GRANT CREATE ON TABLESPACE pg_default TO admin;

查看当前用户的所有权限

select * from information_schema.table_privileges where grantee='test001';

更改当前用户

set role dba;

恢复

Reset role

授权数据库test给dba

GRANT ALL ON DATABASE test TO test001;

取消数据库授权

revoke ALL ON DATABASE test from test001;

先要对schema授权,再对表授权,只有对这个schema有usage权限,才能对这个schema下的表进行访问

grant usage on schema schema1 to test001,dba;

取消schema的usage权限

revoke usage on schema schema1 from test001;

授予所有select权限

grant select on all tables in schema schema1 to test001

多表授权

grant select on table test.schema1.person,schema1.user_info to test001

取消person表的select权限

revoke select on table test.schema1.person from test001

把用户加进组(相当于把test_group的权限赋给admin)

GRANT test_group TO admin;

把用户从组移除(相当于把test_group的权限从admin撤销)

REVOKE test_group FROM admin;

查询所有数据库大小

select datname AS db_name, pg_size_pretty(pg_database_size(datname)) as db_size
from pg_database order by pg_database_size(datname) desc;

查询数据库信息

select * from pg_database;

查询schema信息(这个比较特别,这张表的nspname字段就是schema名称)

select * from pg_namespace

查询表信息

select * from pg_tables t

查询最大连接数

show max_connections;

查询当前连接数

select count(1) from pg_stat_activity;

参考资料

GreenPlum角色与权限控制

正文到此结束