
如何在PostgreSQL中建只读账号
1个回答
展开全部
在PostgreSQL中并没有CREATE TABLE权限名称,这是与其它数据库不同的一个地方,PostgreSQL是通过控制是否在模式schema中上有CREATE控制用户的能否创建表的权限的,默认安装下,任何用户都有在模式public中CREATE的权限,所以要创建只读账号的第一步,我们要先去除在模式public中的CREATE权限:
REVOKE CREATE ON SCHEMA public from public;
下面的SQL创建了一个名为“readonly”的用户:
CREATE USER readonly with password 'query';
然后把现有的所有在public这个schema下的表的SELECT权限赋给用户readonly,执行下面的SQL命令:
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
上面的SQL命令只把现有的表的权限给了用户readonly,但如果这之后创建的表,readonly用户还是不能读,需要使用下面的SQL把以后创建的表的SELECT权限也给用户readonly:
REVOKE CREATE ON SCHEMA public from public;
下面的SQL创建了一个名为“readonly”的用户:
CREATE USER readonly with password 'query';
然后把现有的所有在public这个schema下的表的SELECT权限赋给用户readonly,执行下面的SQL命令:
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
上面的SQL命令只把现有的表的权限给了用户readonly,但如果这之后创建的表,readonly用户还是不能读,需要使用下面的SQL把以后创建的表的SELECT权限也给用户readonly:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询