我们有一个运行 MOSS 2007 SP1 的 2 个服务器群。我是两台服务器上管理员组的成员。
我也是 Farm Administrators 组的成员。
我需要升级一些解决方案,所以很自然地我从旧解决方案上的 stsadm retrosolution 命令开始。无论我尝试运行该命令的哪种解决方案,我都会返回“拒绝访问”。
幸运的是,ULS 日志文件为我提供了更多信息:
System.Data.SqlClient.SqlException:无法打开登录请求的数据库“SharePoint_AdminContent”。登录失败。用户“***我的域登录***”登录失败。
这里似乎很奇怪的是,SharePoint 正在尝试使用 Windows 集成身份验证与我的帐户连接,而不是与配置的 Farm 服务帐户连接。当然,我的帐户无权访问管理员内容数据库。
所以问题是:我的帐户是否需要被授予管理内容数据库的权限才能执行管理任务?我当然希望不会,那么还有什么非常错误的吗?
Sea*_*ugh 10
对于您将通过 STSADM 针对 SQL 数据库执行的大多数活动,简短的回答是“是”。
对于直接针对 SharePoint API 执行的绝大多数 STSADM 命令(而不是安排任务来执行操作),执行命令的安全上下文是您的 -- 登录用户。正如您在引用的示例中所见,您的用户帐户上下文将用于撤回。如果您在 SQL 中没有适当的权限来执行操作,它将失败(如您所见)。
这与您将通过 UI(即中央管理)执行的大多数活动形成对比。在您引用的示例中,通过 Central Admin 撤回解决方案将导致在场服务帐户的上下文中执行命令,因为该帐户是 Central Admin 站点的应用程序池标识。结果:即使您(个人)没有关联数据库的权限,撤回也会成功。
如果您的环境设置为您的帐户对 SharePoint 场中的数据库没有管理员级别的访问权限,我建议您通过 UI 执行尽可能多的活动,以避免您遇到的安全上下文问题类型. 你会发现你可以用这种方式完成大部分你需要做的事情。不过,我想到的一个值得注意的例外是向场解决方案存储添加解决方案 (STSADM -o addsolution) —— 不存在与 STSADM 命令对应的 UI。
或者,您可以执行类似于 MadlyAlive 建议的操作(即,使用场服务帐户登录)……尽管 Microsoft 既不要求也不建议使用场服务帐户的本地管理员访问权限。您还可以为您的帐户授予执行操作所需的 SQL Server 内部最小权限集。
有关更多讨论,请参阅位于http://support.microsoft.com/kb/896148 的Microsoft 知识库文章。
经验法则回顾:STSADM 使用您的帐户上下文,中央管理员使用场服务帐户上下文。
我希望这有帮助!
归档时间: |
|
查看次数: |
22684 次 |
最近记录: |