Postgresql 赋予用户权限和撤销权限的实例
导读:收集整理的这篇文章主要介绍了Postgresql 赋予用户权限和撤销权限的实例,觉得挺不错的,现在分享给大家,也给大家做个参考。 1、对数据库授权postgreSQL 授权某个数据库的权...
收集整理的这篇文章主要介绍了Postgresql 赋予用户权限和撤销权限的实例,觉得挺不错的,现在分享给大家,也给大家做个参考。 1、对数据库授权
postgreSQL 授权某个数据库的权限给wang 账号 使该账号 只能操作指定DB 不能操作其他DB
alter user wang set default_transaction_read_only=on;
grant all on database test to wang;
grant select on all database test to wang;
grant select on all tables in schema public to wang;
// 起作用的是这句 要进入数据库test 操作,在那个db环境执行就授哪个db的权配置权限
ve=# grant all on schema public to foo ;
ve=# grant select,insert,update,delete on test to foo ;
ve=# grant select,insert,update,delete on public.test to foo ;
对表授权
撤销授权
撤销对数据库授权
revoke all on database company From wang;
#撤销用户wang对数据库company 的所有权限revoke select on all tables in schema public from wang;
撤销对表授权
对当前库中所有表去掉public的所有访问权限,为了确保除了所有者之外的洽谈用户不能操作这些表。
lyy=# revoke all on test1 from public;
REVOKElyy=# revoke all on test2 from public;
REVOKE去掉对pg_class的访问权限,为了确保yy用户不能看到所有表名的列表。
lyy=# revoke all on pg_class from public;
REVOKElyy=# revoke all on pg_class from yy;
REVOKE添加yy用户对test1表的所属关系,确保yy用户对test1表有权限操作
lyy=# ALTER TABLE test1 OWNER TO yy;
lyy=# \q用户管理
/* 赋给用户表的所有权限 */GRANT ALL ON tablename TO user;
/* 赋给用户数据库的所有权限 */GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;
/* 撤销用户权限 */REVOKE privileges ON tablename FROM user;
数据库操作
/* 创建数据库 */create database dbname;
/* 删除数据库 */drop database dbname;
表操作
/* 增加让主键自增的权限 */grant all on sequence tablename_keyname_seq to webuser;
/* 重命名一个表 */alter table [表名A] rename to [表名B];
/* 删除一个表 */drop table [表名];
/* 在已有的表里添加字段 */alter table [表名] add column [字段名] [类型];
/* 删除表中的字段 */alter table [表名] drop column [字段名];
/* 重命名一个字段 */alter table [表名] rename column [字段名A] to [字段名B];
/* 给一个字段设置缺省值 */alter table [表名] alter column [字段名] set default [新的默认值];
/* 去除缺省值 */alter table [表名] alter column [字段名] drop default;
/* 插入数据 */insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);
/* 修改数据 */update [表名] set [目标字段名]=[目标值] where ...;
/* 删除数据 */delete from [表名] where ...;
/* 删除表 */delete from [表名];
/* 查询 */SELECT * FROM dbname WHERE ...;
/* 创建表 */create table ( [字段名1] [类型1] Primary key,参考
创建用户和数据库
创建用户
postgres=# create user username wITh password '****';
创建数据库
postgres=# create database dBTest owner username;
-- 创建数据库指定所属者将数据库得权限,全部赋给某个用户
postgres=# grant all on database dbtest to username;
-- 将dbtest所有权限赋值给username导入整个数据库
psql -U username databasename /data/dum.sql -- 用户名和数据库名
常见报错 :
1、切换yy用户失败
lyy=# \c - yyFATAL: PEer authentication failed for user "yy"Previous connection kept
2、用户yy连接lyyku会报错
psql -E -U yy -d lyyPassword for user yy:psql: FATAL: permission denied for database "lyy"DETAIL: User does not have CONNECT privilege.
原因 :没有connect权限,那么就授予用户yy对数据库lyy的访问权限
解决办法 :
#grant connect on database lyy to yy;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
您可能感兴趣的文章:- 基于PostgreSQL 权限解读
- PostgreSQL 默认权限查看方式
- 查看postgresql数据库用户系统权限、对象权限的方法
- PostgreSQL教程(十二):角色和权限管理介绍
- 用一整天的时间安装postgreSQL NTFS权限
- Postgresql 数据库权限功能的使用总结 @H_512_150@
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Postgresql 赋予用户权限和撤销权限的实例
本文地址: https://pptw.com/jishu/632945.html
