我正在努力实现以下目标:
我有创建的user1。这个user1有数据库user1_db1、user1_db2、user1_db3
当我将user1的所有者授予所有数据库时,我可以对它们执行所有操作,除非我创建user1_user1,将all访问权限(无所有者(授予user1_db。然后user1_user1将抛出以下错误:user1_user1=>ALTER DATABASE";user1_ dbl";SET byta_output="转义";错误:必须是数据库user1_db1 的所有者
我需要的是一个特殊用户(在本例中为user1_user1(,以便在使用user1登录时能够对已授予所有访问权限的数据库执行所有操作,并且在phppgadmin中仍然可见(当设置了$conf['owned_only']=true;时(,或者如果需要,我可以为phppgadmin创建一个特殊的用户,但必须仅查看前缀为user1的数据库。
也许我的方法不合适,所以请让我知道我如何才能做到这一点。
目标是让1个用户能够访问/修改所有这些数据库,在相同的场景中,user1_user1能够执行相同的操作,但不能访问phppgadmin。我看到的限制只是所有权,我无法绕过它。。。谢谢你的建议!
您可以对所有数据库使用相同的用户,但您需要为该用户提供对每个数据库的访问权限。您可以通过运行以下SQL:来做到这一点
GRANT ALL PRIVILEGES ON DATABASE user1_db1 TO user1_user1; GRANT ALL PRIVILEGES ON DATABASE user1_db2 TO user1_user1; GRANT ALL PRIVILEGES ON DATABASE user1_db3 TO user1_user1;
您还可以通过运行以下SQL:为用户提供对所有数据库的访问权限
GRANT ALL PRIVILEGES ON ALL DATABASES TO user1_user1;
您还可以通过运行以下SQL:来允许用户访问数据库中的所有表
GRANT ALL PRIVILEGES ON user1_db1.* TO user1_user1;
您还可以通过运行以下SQL:来允许用户访问所有数据库中的所有表
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO user1_user1;
您还可以通过运行以下SQL:,让用户访问数据库中的所有序列
GRANT ALL PRIVILEGES ON user1_db1 TO user1_user1;
您还可以通过运行以下SQL:,让用户访问所有数据库中的所有序列
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO user1_user1;
您还可以通过运行以下SQL:来允许用户访问数据库中的所有函数
GRANT ALL PRIVILEGES ON user1_db1 TO user1_user1;
您还可以通过运行以下SQL:,让用户访问所有数据库中的所有函数
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO user1_user1;
您还可以通过运行以下SQL:来允许用户访问数据库中的所有类型
GRANT ALL PRIVILEGES ON user1_db1 TO user1_user1;
您还可以通过运行以下SQL:,让用户访问所有数据库中的所有类型
GRANT ALL PRIVILEGES ON ALL TYPES IN SCHEMA public TO user1_user1;
您还可以通过运行以下SQL:来允许用户访问数据库中的所有运算符
GROMMySQL:如何将所有数据库和表的所有权限授予用户?
最好的方法是在上使用GRANT ALL PRIVILEGESTO'user'@'localhost'语法。
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password';
这将赋予用户对所有数据库和表的所有权限。
我终于使用了成员身份:
postgres=# du
List of roles
Role name | Attributes | Member of
-------------------+------------------------------------------------------------+---------------------
user1 | | {user1_pgsqluser}
user1_pgsqluser | | {}
这可以通过以下方式授予:
psql -U postgres -c 'grant $dbuser to $user;'