权限不足导致无法创建数据库角色的问题排查与解决请求
解决创建角色时的权限不足问题
问题原因
你当前执行SQL的用户没有CREATE ROLE系统权限,默认情况下只有具备DBA角色的用户(比如Oracle的sys、system账号)拥有创建角色的权限,普通用户无法直接执行CREATE ROLE操作,所以会抛出权限不足的错误。另外,你的脚本里还包含CREATE USER语句,这同样需要对应的系统权限(CREATE USER)。
解决方法
方法一:使用DBA权限用户执行脚本
切换到sys或system这类自带DBA权限的账号登录数据库,然后重新运行你的SQL代码:CREATE ROLE pharmacist; CREATE ROLE administrator; GRANT SELECT, UPDATE ON Patient TO pharmacist; GRANT SELECT, UPDATE ON Prescription TO pharmacist; GRANT SELECT, INSERT, UPDATE, DELETE ON Medication TO administrator; GRANT SELECT, INSERT, UPDATE, DELETE ON pharmacy TO administrator; GRANT UPDATE ON doctor TO administrator; GRANT pharmacist TO administrator WITH ADMIN OPTION; CREATE USER pharmacist_user IDENTIFIED BY pharmacist_password; GRANT pharmacist TO pharmacist_user; CREATE USER admin_user IDENTIFIED BY admin_password; GRANT administrator TO admin_user;方法二:给当前用户授予必要权限
如果要继续用当前用户操作,先登录DBA账号,执行以下语句给当前用户授予权限:-- 授予创建角色和创建用户的权限 GRANT CREATE ROLE, CREATE USER TO your_current_username; -- 若授予对象权限时出错,需确保当前用户是目标表的所有者,或拥有对应权限的WITH GRANT OPTION权限授予完成后,切换回你的用户重新执行脚本即可。
内容的提问来源于stack exchange,提问作者Mega X Nine
相关产品推荐
相关产品推荐

