Azure PostgreSQL弹性服务器:如何配置全对象权限的管理员用户?
在Azure PostgreSQL弹性服务器创建全权限管理员用户的解决方案
可以创建具备所有数据库对象完整权限的管理员用户,以下是具体操作步骤(需使用服务器的超级用户执行,比如默认的postgres用户):
创建管理员用户
CREATE USER full_admin WITH LOGIN PASSWORD 'your_secure_password';授予基础管理权限
让用户具备创建数据库、管理其他用户的能力:ALTER USER full_admin CREATEDB CREATEROLE;授予目标数据库的全权限
GRANT ALL PRIVILEGES ON DATABASE your_target_db TO full_admin;切换到目标数据库并配置Schema权限
先切换到目标数据库:\c your_target_db授予对现有Schema的使用、创建权限(以
public为例,如有自定义Schema请替换):GRANT USAGE, CREATE ON SCHEMA public TO full_admin WITH GRANT OPTION;授予对现有数据库对象的全权限:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO full_admin WITH GRANT OPTION; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO full_admin WITH GRANT OPTION; GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO full_admin WITH GRANT OPTION;配置默认权限(未来对象自动授权)
确保流水线后续创建的对象自动赋予该管理员权限:ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO full_admin WITH GRANT OPTION; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON SEQUENCES TO full_admin WITH GRANT OPTION; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON FUNCTIONS TO full_admin WITH GRANT OPTION;
说明
- 操作完成后,
full_admin用户将拥有对指定数据库内所有对象的读写、修改、删除权限,同时具备为其他用户授权的能力,包括管理流水线创建的归属其他身份的对象。 - 如果存在多个自定义Schema,需要为每个Schema重复执行步骤4和步骤5中的Schema相关命令。
- Azure PostgreSQL弹性服务器的默认超级用户为
azure_superuser,若你使用的创建服务器时的管理员用户(如postgres)权限不足,可通过该用户执行操作。
内容的提问来源于stack exchange,提问作者pietro
相关产品推荐
相关产品推荐

