我刚刚安装了 MS CRM 2011,对其进行了定制,导入了大量数据,然后我更改了一些设置:团队、业务部门、用户角色等。刷新后,所有用户都被锁定了。
我们现在正在尝试通过 SQL 数据库重置用户设置,但我们不确定要编辑哪些表以及如何编辑?
我刚刚安装了 MS CRM 2011,对其进行了定制,导入了大量数据,然后我更改了一些设置:团队、业务部门、用户角色等。刷新后,所有用户都被锁定了。
我们现在正在尝试通过 SQL 数据库重置用户设置,但我们不确定要编辑哪些表以及如何编辑?
不要这样做!
权限仅在应用程序内进行管理。通过直接 SQL 执行此操作是完全不受支持的,并且会以泪水告终。数据库级别的安全模型很复杂且没有文档记录。如果您手动操作它,您可以肯定会破坏您的安装并需要完全重新安装。
希望您没有更改默认角色。如果是这种情况,请将默认角色授予用户,然后将这些角色复制为新角色的基础以供您自定义。
很可能您已经删除了对用户数据、核心记录和系统设置的读取和写入等内容的访问权限,但手动将这些重新拼凑起来可能会很痛苦。
如果您覆盖了原始角色,则根据您拥有的 CRM 2011 版本,您可以恢复原始角色定义:
然后,您应该已经恢复了角色,并且可以有效地重新开始您的安全自定义。
(从我原来的“更干净”的答案移动)。
OP 可能从所有用户 (TBC) 中删除了系统管理员角色。如果是这样,仍然不支持使用 SQL 将该角色恢复给用户,但相对容易做到:
-- Get id of sys admin role:
SELECT RoleId from [YourOrg_MSCRM].dbo.RoleBase where Name = 'System Administrator'
-- Get id of user to grant access
SELECT systemuserid from [YourOrg_MSCRM].dbo.SystemUserBase where DomainName = 'MyDomain\MyUser'
-- Check role is not already granted (result should be 0)
SELECT COUNT(*) FROM [YourOrg_MSCRM].dbo.SystemUserRoles WHERE RoleId = '[Id of Role]' AND SystemUserId = '[Id of user]'
-- Insert role against that user
INSERT INTO [YourOrg_MSCRM].[dbo].[SystemUserRoles]([SystemUserId],[RoleId],[SystemUserRoleId])
VALUES ([Id of user] ,[Id of role], NEWID())