无法使用sp_restore_system_role存储过程还原sa_role

2020-08-20 09:23发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

使用存储过程 sp_restore_system_role 有什么限制吗? 我已经从测试系统中删除了sa_role,并且尝试还原它时,出现以下错误。 (我的全部目的是检查存储过程的使用情况。)

1> sp_restore_system_role sa_role
2>转到
消息589,级别16,状态1:
服务器'ASE2',过程'sp_aux_checkroleperm',第69行:
收到无效的角色字符串。 br>消息589,级别16,状态1:
服务器'ASE2',过程'sp_restore_system_role',行85:
接收到无效的角色字符串。
(返回状态= 1)

因此,我尝试了以下方法进行修复,但没有成功。
1。 使用具有sso_role的登录名登录并执行sp。
2。 删除并重新创建存储过程sp_restore_system_role。
3。 跑installmaster脚本
4。 如下所示,将角色名称包含在存储过程'sp_aux_checkroleperm'中。 (如果错了,不要责骂我,因为我的调试能力很差。)

从master.dbo.syscurconfigs a,
master.dbo.sysconfigures b中选择@gp_enabled = a.value,其中
a.config = b.config和b。 名称,例如"启用精细权限"
if(@gp_enabled = 0且@rolename不为NULL)

开始/*如果@rolename为" dbo",那么我们只检查用户是否为dbo。 */
if(@rolename =" dbo" 或@ rolename =" sa_role" 或@rolename =" DBO")

if(user_id()= 1 < br>)返回0否则返回1结束选择@dummy = has_role(@ rolename,1)如果(@dummy = 0)
开始
返回1

结束

end

1>选择@@ version
2>转到
-------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------------------- Adaptive Server Enterprise/16.0/EBF 22383 SMP/P/x86_64/Enterprise Linux/asecepheus/3530/64-bit/FBO/Sun Feb 16 06:09:40 2014
(受影响的1行)

请为此指导我恢复已删除的角色。

关于,
Dilip Voora

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

使用存储过程 sp_restore_system_role 有什么限制吗? 我已经从测试系统中删除了sa_role,并且尝试还原它时,出现以下错误。 (我的全部目的是检查存储过程的使用情况。)

1> sp_restore_system_role sa_role
2>转到
消息589,级别16,状态1:
服务器'ASE2',过程'sp_aux_checkroleperm',第69行:
收到无效的角色字符串。 br>消息589,级别16,状态1:
服务器'ASE2',过程'sp_restore_system_role',行85:
接收到无效的角色字符串。
(返回状态= 1)

因此,我尝试了以下方法进行修复,但没有成功。
1。 使用具有sso_role的登录名登录并执行sp。
2。 删除并重新创建存储过程sp_restore_system_role。
3。 跑installmaster脚本
4。 如下所示,将角色名称包含在存储过程'sp_aux_checkroleperm'中。 (如果错了,不要责骂我,因为我的调试能力很差。)

从master.dbo.syscurconfigs a,
master.dbo.sysconfigures b中选择@gp_enabled = a.value,其中
a.config = b.config和b。 名称,例如"启用精细权限"
if(@gp_enabled = 0且@rolename不为NULL)

开始/*如果@rolename为" dbo",那么我们只检查用户是否为dbo。 */
if(@rolename =" dbo" 或@ rolename =" sa_role" 或@rolename =" DBO")

if(user_id()= 1 < br>)返回0否则返回1结束选择@dummy = has_role(@ rolename,1)如果(@dummy = 0)
开始
返回1

结束

end

1>选择@@ version
2>转到
-------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------------------- Adaptive Server Enterprise/16.0/EBF 22383 SMP/P/x86_64/Enterprise Linux/asecepheus/3530/64-bit/FBO/Sun Feb 16 06:09:40 2014
(受影响的1行)

请为此指导我恢复已删除的角色。

关于,
Dilip Voora

付费偷看设置
发送
3条回答
浮生未央
1楼 · 2020-08-20 09:59.采纳回答

此过程将默认权限恢复为指定角色。
它不会重新创建已删除的角色。

要从删除sa_role中恢复,您将需要加载主数据库的最新转储或重新安装服务器。

-bret

bbpeas
2楼-- · 2020-08-20 09:41

在存储过程sp_aux_checkroleperm中包含角色名称后,在执行sp_restore_system_role时得到了以下内容。

1> sp_restore_system_role sa_role
2> go
消息589,级别16,状态1:
服务器'ASE2',过程'sp_restore_system_role',第86行:
收到无效的角色字符串。 br>消息102,级别15,状态181:
服务器'ASE2',第1行:
'='附近的语法不正确。
正在还原" sa_role"。
消息10353,级别14 ,状态7:
服务器'ASE2',过程'sp_restore_system_role',行395:
您必须具有以下任何一个角色才能执行此命令/过程:'sa_role'。 请与具有适当角色的用户联系以寻求帮助。
消息10334,级别18,状态125:服务器'ASE2',过程'sp_restore_system_role',行395:
遇到了权限相关的内部错误。 无法继续执行。
消息15967,级别16,状态1:服务器'ASE2',过程'sp_restore_system_role',行395:
当更新数据库中系统角色的权限时,'GRANT'命令失败 'sybsystemprocs'。 数据库中的角色可能没有正确的权限。
(返回状态= 0)

Haoba3210
3楼-- · 2020-08-20 10:05

感谢澄清Bret。

一周热门 更多>