如何仅通过Schema级权限授权用户在自身Schema中执行所有操作?
如何在Schema级别授权用户执行所有操作(无需数据库级权限)
针对生产环境无法授予数据库级CREATE TABLE权限的情况,可通过以下Schema级权限配置,让用户在自身Schema内执行所有操作:
首先授予用户目标Schema的基础访问权限:
GRANT USAGE ON SCHEMA [用户自身Schema名] TO [目标用户名];授予用户在该Schema内创建各类对象的权限(替代数据库级CREATE权限):
GRANT CREATE ON SCHEMA [用户自身Schema名] TO [目标用户名];授予用户对Schema内所有现有对象的完整操作权限:
-- 针对表 GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA [用户自身Schema名] TO [目标用户名]; -- 针对序列 GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA [用户自身Schema名] TO [目标用户名]; -- 针对函数 GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA [用户自身Schema名] TO [目标用户名];配置默认权限,确保用户对未来在该Schema内创建的对象自动拥有完整权限:
ALTER DEFAULT PRIVILEGES IN SCHEMA [用户自身Schema名] GRANT ALL PRIVILEGES ON TABLES TO [目标用户名]; ALTER DEFAULT PRIVILEGES IN SCHEMA [用户自身Schema名] GRANT ALL PRIVILEGES ON SEQUENCES TO [目标用户名]; ALTER DEFAULT PRIVILEGES IN SCHEMA [用户自身Schema名] GRANT ALL PRIVILEGES ON FUNCTIONS TO [目标用户名];
以上配置完全基于Schema级权限,无需授予数据库级权限,既满足用户在自身Schema内执行所有操作的需求,也符合生产环境权限最小化的安全原则。
内容的提问来源于stack exchange,提问作者user1628
相关产品推荐
相关产品推荐

