如何为新建用户Test授予仅针对SCHEMA XYZ的SELECT权限?
针对特定SCHEMA授予SELECT权限的解决方案
没问题,给用户Test仅授予SCHEMA XYZ的SELECT权限其实很容易操作,我分两种常见数据库场景给你说明:
PostgreSQL 操作步骤
第一步:创建Test用户
先创建用户并设置安全密码(记得替换成你自己的密码):CREATE USER Test WITH PASSWORD 'your_secure_password';第二步:授予现有表的SELECT权限
针对XYZ SCHEMA下已经存在的所有表,授予SELECT权限:GRANT SELECT ON ALL TABLES IN SCHEMA XYZ TO Test;第三步(可选):授予未来新建表的默认权限
如果之后在XYZ SCHEMA里创建新表,想让Test自动拥有这些新表的SELECT权限,可以执行:ALTER DEFAULT PRIVILEGES IN SCHEMA XYZ GRANT SELECT ON TABLES TO Test;
MySQL 操作步骤
在MySQL中,SCHEMA和DATABASE是等价的,操作如下:
第一步:创建Test用户
创建用户并指定登录主机(比如localhost,换成%则允许远程登录):CREATE USER 'Test'@'localhost' IDENTIFIED BY 'your_secure_password';第二步:授予XYZ SCHEMA的SELECT权限
直接授予该SCHEMA下所有对象的SELECT权限:GRANT SELECT ON XYZ.* TO 'Test'@'localhost';第三步:刷新权限
执行命令让权限立即生效:FLUSH PRIVILEGES;
这样设置后,Test用户就只能访问XYZ SCHEMA里的表并执行SELECT操作,完全无法访问ABC SCHEMA的内容啦。
内容的提问来源于stack exchange,提问作者Rahman Gurbaz
相关产品推荐
相关产品推荐

