Sql server xp_实例_重新研磨和xp_重新研磨之间的差异
XP_重磨和XP_实例_重磨有什么区别。Sql server xp_实例_重新研磨和xp_重新研磨之间的差异,sql-server,Sql Server,XP_重磨和XP_实例_重磨有什么区别。 如何使用它们,这些上有文档吗?xp\u regread读取您指定的文字注册表路径。xp_instance_重新读取“转换”您指定的路径,使其与您当前使用的SQL Server实例匹配 例如,我的机器上安装了SQL Server的Developer和Express版本。我连接到Express实例并运行以下两个命令: declare @dir nvarchar(4000) exec master.dbo.xp_regread N'HKEY_LO
如何使用它们,这些上有文档吗?xp\u regread读取您指定的文字注册表路径。xp_instance_重新读取“转换”您指定的路径,使其与您当前使用的SQL Server实例匹配 例如,我的机器上安装了SQL Server的Developer和Express版本。我连接到Express实例并运行以下两个命令:
declare @dir nvarchar(4000)
exec master.dbo.xp_regread
N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\Setup',
N'SQLPath',
@dir output
select @dir
exec master.dbo.xp_instance_regread
N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\Setup',
N'SQLPath',
@dir output
select @dir
第一个返回C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL
,这是在我指定的位置找到的值,但它不是我的Express实例的正确安装路径
第二个返回
c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL
,这是我的Express实例的正确路径。该值实际上是从HKEY\U LOCAL\U MACHINE\Software\Microsoft\Microsoft SQL Server\MSSQL.1\Setup
读取的,这与我提供给xp\U实例的路径非常不同。Gabriel,服务帐户不必是dbo。只要用户是主数据库中的用户,就可以在主数据库中授予对系统对象的执行权限。
GRANT EXEC ON OBJECT::master.dbo.xp_instance_regread TO ServiceAccountUserName
GRANT EXEC ON OBJECT::master.dbo.xp\u instance\u重新读取为ServiceAccountUserName
我明白了,谢谢,我对此很生气,然后我向运行SQL的帐户添加了管理员权限以获得此权限。有没有办法在没有管理员权限的情况下读取注册表?@Gabriel:你应该能够授予对该过程的执行权限。但是我是否需要让我的SQL服务帐户在计算机上具有管理员权限?只要你不手动修改windows服务的启动设置以使用其他帐户,windows服务将对实例注册表项具有读/写权限。这些权限可能是在首次创建密钥时配置的(即在SQL server的初始配置/安装期间)。请注意,在许多情况下(包括通过SSMS进行的配置更改),在SQL server重新启动之前,SQL server会忽略这些键的值。我遇到了一个问题,即我试图使用nvarchar(max)读取注册表,但它不是这样工作的,仅使用数字大小的char变量。