灌水唠嗑区
每日一题
问答
如何创建用户和授权操作?
发表于2026-06-02 14:13:0427次浏览13个评论
公司新入职了一名数据分析师“小王”,你需要为他创建一个GBase 8c数据库账户并赋予适当的权限。具体要求如下:
创建用户: 创建一个名为
analyst_wang的用户,密码设置为Data_2024#,并且要求该密码在第一次登录时必须失效(即强制用户在首次登录时修改密码)。授予连接权限: 允许该用户连接到名为
sales_db的数据库。授予数据操作权限: 在
sales_db数据库的public模式下,有一张名为orders的表。请授予analyst_wang对该表的SELECT和INSERT权限。验证与回收: 假设一段时间后,小王离职了,请给出回收其所有权限并删除该用户的命令。
悬赏:1200吉币
回答被发帖人采纳后可获得赏金
评论
登录后才可以发表评论
山佳发表于 2个月前
最佳回答
GBase用户50900发表于 2个月前
建议升级一下版本,新版本中可能已经修复了这个问题。
GBase用户51966发表于 2个月前
这个问题可以尝试从官方文档中寻找解决方案,文档中有详细的说明。
一个老汉发表于 2个月前
这个问题需要从多个角度排查,建议先确认一下环境信息。
GBase用户51510发表于 2个月前
可以试试看调整参数,有时候参数设置不当会导致此类问题。
GBase用户51511发表于 2个月前
可以试试看调整参数,有时候参数设置不当会导致此类问题。
佛洛伊得发表于 2个月前
这个问题之前有人遇到过,可以搜索一下论坛中的相关帖子。
塔山发表于 2个月前
可以参考一下相关文档,上面有详细的步骤说明。
GBase用户28017发表于 2个月前
先revoke,后drop user
GBase用户21020发表于 2个月前
创建用户并设置过期;授权连接和表权限;回收删除。
李雪洋发表于 2个月前
创建用户并授予权限,离职后回收。
GBase用户21020发表于 2个月前
创建用户并授权操作。
李雪洋发表于 2个月前
创建用户,授权连接,授权表权限,离职回收删除。
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526
为了强制用户首次登录时修改密码,需要在创建用户时使用 EXPIRED 关键字。
sql-- 创建用户 analyst_wang,密码为 Data_2024#,并强制密码失效
CREATE USER analyst_wang IDENTIFIED BY 'Data_2024#' EXPIRED;
解析:
CREATE USER 用于创建新用户。
IDENTIFIED BY 'Data_2024#' 指定初始密码。
EXPIRED 关键字标记该密码为失效状态。当 analyst_wang 首次使用该密码登录时,系统会提示密码已过期并要求设置新密码。
2. 授予数据库连接权限
默认情况下,新创建的用户没有访问任何数据库的权限。需要从 public(公共用户组)回收默认的连接权限,再单独授予给 analyst_wang。
sql-- 首先,回收 public 对该数据库的连接权限
REVOKE CONNECT ON DATABASE sales_db FROM public;
-- 然后,授予 analyst_wang 连接 sales_db 数据库的权限
GRANT CONNECT ON DATABASE sales_db TO analyst_wang;
解析:
REVOKE CONNECT ON DATABASE sales_db FROM public;:这条命令移除了所有用户(通过public角色)对该数据库的默认连接权限,确保只有被明确授权的用户才能连接。
GRANT CONNECT ON DATABASE sales_db TO analyst_wang;:这条命令明确授予 analyst_wang 用户连接 sales_db 数据库的权限。
3. 授予表的SELECT和INSERT权限
需要为 analyst_wang 授予对 public 模式下 orders 表的查询和插入权限。
sql-- 授予 SELECT(查询)权限
GRANT SELECT ON TABLE orders TO analyst_wang;
-- 授予 INSERT(插入)权限
GRANT INSERT ON TABLE orders TO analyst_wang;
解析:
GRANT SELECT ON TABLE orders TO analyst_wang;:允许该用户执行 SELECT * FROM orders; 来查看数据。
GRANT INSERT ON TABLE orders TO analyst_wang;:允许该用户执行 INSERT INTO orders VALUES (...); 来添加新数据。
4. 权限回收与删除用户
当员工离职时,为了确保安全,应先回收其所有权限,再删除用户。
sql-- 步骤1:回收该用户对所有对象的所有权限(此处以回收 orders 表的权限为例)
REVOKE SELECT ON TABLE orders FROM analyst_wang;
REVOKE INSERT ON TABLE orders FROM analyst_wang;
-- 步骤2:回收数据库连接权限
REVOKE CONNECT ON DATABASE sales_db FROM analyst_wang;
-- 步骤3:删除用户(CASCADE 表示同时删除该用户拥有的所有对象)
DROP USER analyst_wang CASCADE;
解析:
REVOKE 语句用于撤销之前授予的权限。建议逐一回收,确保权限清理彻底。
DROP USER analyst_wang CASCADE;:删除该用户。使用 CASCADE 关键字可以自动删除该用户拥有的所有数据库对象(如表、视图等),避免残留数据导致错误。
总结:
创建用户和授权是数据库安全管理的核心操作。通过上述SQL语句,你完整地实现了用户创建(含密码失效策略)、数据库连接权限控制、数据表操作授权以及用户回收的全过程,满足了公司对员工账户生命周期管理的安全要求。