0

我刚刚安装了 MS CRM 2011,对其进行了定制,导入了大量数据,然后我更改了一些设置:团队、业务部门、用户角色等。刷新后,所有用户都被锁定了。

我们现在正在尝试通过 SQL 数据库重置用户设置,但我们不确定要编辑哪些表以及如何编辑?

4

3 回答 3

1

不要这样做!

权限仅在应用程序内进行管理。通过直接 SQL 执行此操作是完全不受支持的,并且会以泪水告终。数据库级别的安全模型很复杂且没有文档记录。如果您手动操作它,您可以肯定会破坏您的安装并需要完全重新安装。

希望您没有更改默认角色。如果是这种情况,请将默认角色授予用户,然后将这些角色复制为新角色的基础以供您自定义。

很可能您已经删除了对用户数据、核心记录和系统设置的读取和写入等内容的访问权限,但手动将这些重新拼凑起来可能会很痛苦。

如果您覆盖了原始角色,则根据您拥有的 CRM 2011 版本,您可以恢复原始角色定义:

  1. 配置新的“临时”CRM 租户
  2. 创建新解决方案(设置 > 解决方案 > 新建)
  3. 将默认角色添加到您的新解决方案
  4. 将解决方案导出为非托管解决方案(zip 文件)
  5. 将解决方案导入原始租户

然后,您应该已经恢复了角色,并且可以有效地重新开始您的安全自定义。

于 2012-08-21T08:56:30.517 回答
1

(从我原来的“更干净”的答案移动)。

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())
于 2012-08-21T11:07:27.973 回答
0

在尝试以下步骤之前,我将创建一个新租户,以确保您的主数据库/AD 环境仍然正常工作。如果可行,那么我将尝试从备份中恢复。

如果您有更改之前的数据库备份,则可以使用导入组织过程,这应该会使您恢复到以前的状态。在开始之前,您需要备份租户和主数据库。

  1. 删除租户数据库
  2. 恢复租户数据库

如果它仍然不起作用:

  1. 从部署管理器中删除租户(您必须先禁用它)
  2. 使用导入组织流程重新创建租户

如果不这样做,您可以从头开始重建

于 2012-08-21T10:56:27.140 回答