给其他账户访问mysql的权限,将postgresql数据库的权限授予其他用户

不要试图复制这样的权利集合,它将成为管理的噩梦.使用角色和继承.

相反,创建一个ROLE(组)并使两个用户都成为该角色的成员.为角色授予任何所需对象所需的权限和所有权,用户将自动继承这些访问权限.

要进行转换,要么:

>通过重命名现有用户并将其LOGIN向右删除,将其从登录角色(用户)转换为非登录角色(组),然后使用原始名称创建新用户,将现有用户转变为共享角色;要么

>手动授予新角色所有必需的权利,使用GRANT … ON DATABASE,GRANT … ON SCHEMA,GRANT …在SCHEMA的所有表格等

这是第一种方法的演示.假设我们有一个名为test的原始用户,拥有表的所有权和其他一些授权:

regress=# CREATE USER test WITH PASSWORD 'original user pw';

CREATE ROLE

regress=# CREATE TABLE testtab(x integer);

CREATE TABLE

regress=# ALTER TABLE testtab OWNER TO test;

ALTER TABLE

我们可以将其转换为共享角色,并使具有相同名称的新用户:

regress=# ALTER ROLE test RENAME TO test_group;

NOTICE: MD5 password cleared because of role rename

ALTER ROLE

regress=# ALTER ROLE test_group NOLOGIN;

ALTER ROLE

regress=# CREATE USER test IN GROUP test_group PASSWORD 'original user pw';

CREATE ROLE

只要您设置相同的密码,用户就不会注意到差异.

您现在可以创建一个新用户并将其添加到同一角色,使其具有与原始测试用户在将其转换为角色test_group之前相同的访问权限.在这种情况下,我使用创建用户的单独步骤,然后授予他们角色成员资格;效果和上面一样,我只是告诉你两种不同的方法:

regress=# CREATE USER newuser PASSWORD 'fred';

CREATE ROLE

regress=# GRANT test_group TO newuser;

GRANT ROLE

现在newuser可以SELECT * FROM testtab,即使testtab由用户测试拥有,并且没有GRANT允许其他用户访问它.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值