是否可以通过指定数据库而不是表来限制用户对postgresql数据库的访问?
我理解这一行:
GRANT ALL ON tableName TO joeuser
允许此用户访问此表并执行他们想要的任何操作。但是,我想允许用户访问包含databaseName
的数据库tableName
(以及databaseName
中的所有表),但不能访问postgresql服务器上的所有数据库。
答案 0 :(得分:1)
不是,不。授予数据库权限:
GRANT ALL ON DATABASE databaseName TO joeuser;
不会自动授予数据库中对象的权限;并且授予当前在数据库中的每个对象的权限不会自动授予可能创建的任何未来对象的权限。
答案 1 :(得分:1)
目前尚不清楚你想要什么。您可能正在尝试查找单个SQL语句,该语句现在可以处理您的所有权限。 SQL权限通常不会那样工作。
根据版本的不同,您可以通过两种方式控制连接到数据库。
您可以change the default privileges获取表格,视图,序列和函数。 (版本9.0+)
ALTER DEFAULT PRIVILEGES
是SQL的PostgreSQL扩展。