对Azure SQL的SUSER_SID支持

问题描述 投票:0回答:2

SUSER_SID具有两个可选参数。我仅使用第一个“登录”。它的文档适用于Azure SQL数据库,但不起作用。对于'login'参数,请说“适用于:SQL Server 2008和更高版本”

[当我打电话给SELECT SUSER_SID('test');使用SSMS,我得到错误:

'SUSER_SID'在此版本的SQL Server中无法使用参数调用。

我正在使用Azure SQL Server版本。 12.0.2000.8

怎么可能,我想念什么?

sql-server azure ssms
2个回答
0
投票

奇怪,这实际上不是documented,但我遇到了同样的问题。 (将在文档的GitHub上提出)。

如果需要sid,可以改用sys.database_principals

SELECT dp.sid
FROM sys.database_principals dp
WHERE dp.name = N'test';

0
投票

关于这个问题,我询问了Azure支持。他们告诉我:

基于在线文档,参数“登录”适用于SQL Server 2008和更高版本,参数2适用于SQL Server 2012和更高版本。这就是为什么我们会收到错误消息“在此版本的SQL Server中无法使用参数调用'SUSER_SID'”的原因。在运行命令SELECT SUSER_SID('serveradmin')时,因为Azure SQL数据库不支持带参数的SUSER_SID()。

如果要检查SID,请考虑改为运行以下命令:

select name, sid from sys.sql_logins where name = 'test'

以下是屏幕截图:

enter image description here

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.