查询结果如图所示,模式“abc”的所有者为postgresql用户
针对模式“abc”, 使用超级管理员postgresql给普通用户test授权,命令如下:
查看默认权限授权完成,通过pg_default_acl表查看默认权限
这样看其实不是很直观,可以使用下面的SQL来查看:
输出结果如下: 表示通过Postgresql超级用户授予test普通用户对模式“abc”有读的权限。
在此,我们再把模式“abc”的拥有者(owner)修改为dbadmin用户(可以事先创建好),执行以下命令:
现在我们使用dbadmin用户登录连接到数据库,给普通用户test添加默认权限,其实上面已经通过postgresql超级用户给test用户加过默认权限了。 这里演示使用dbadmin用户再添加一次,目的是演示pg_default_acl表会出现2条记录,使用dbadmin用户执行以下命令:
再次查看pg_default_acl表会出现两行记录:
一行是dbadmin拥有者授予的读权限。 一行是postgresql超级用户授权的读权限。
补充:PostgreSQL基本配置与权限控制
修改PgSQL基本配置:重要文件和目录:
修改PgSQL侦听地址:在单引号内写入IP地址,如果要侦听多个IP地址,以逗号分隔
修改PgSQL侦听端口:默认端口 5432
修改PgSQL最大连接数:修改连接数需要重启,对比MySQL一般设置 512 ~ 1024
打开PgSQL复制日志:类似于MySQL binlog,复制到从库并应用一遍日志操作就达到数据同步了
PgSQL用户权限控制:在数据库中创建对象时,都会为其分配所有者。 所有者通常是执行创建语句的用户。 对于大多数类型的对象,初始状态是只有所有者(或超级用户)可以修改或删除对象。 要允许其他角色或用户使用它,必须授予权限或权限。
配置超管用户安全:默认是 all 所有用户都拥有peer对等权限,只修改为postgrs用户拥有peer权限
创建用户: 用户授权权限: 配置用户连接:在PgSQL内创建用户后也是不可以登录的,需要在pg_hba.conf文件中配置连接源信息,否则不允许远程登录。
加入 olda用户,local本地可以登录所有库,登录密码验证方式为md5
配置默认权限:意思为 postgres用户创建的所有表都默认对 olda用户重新授予权限
配置用户远程连接:以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。如有错误或未考虑完全的地方,望不吝赐教。