我有一个客户,他创建了SQL azure数据库,并试图授予对其数据库中本地安全组帐户的访问权限。我们面临的挑战是将内部部署的组命名为“组帐户”,即单词之间有一个空格。该帐户与Azure AD同步。
两个问题
1)如何在SQL Azure数据库上提供对安全组的访问?我知道您会说使用以下语法,但在我的情况下不起作用i)名称ii中的单词之间有空格ii)这不是启用邮件的组,因此在其中没有相应的@ domain.com该组的Azure AD
创建用户[name@domain.com] 来自外部提供商
答案 0 :(得分:1)
我以前使用过CREATE USER [Group Name] FROM EXTERNAL PROVIDER
,它确实有效。
答案 1 :(得分:1)
首先,您应该使用AD管理员帐户登录Azure数据库。
然后运行此查询(与提供的juunas相同)以将本地安全组添加到Azure SQL数据库。
CREATE USER [<Security Group Display Name>] FROM EXTERNAL PROVIDER WITH DEFAULT_SCHEMA = [<schema>];
正如您所说,您的“组帐户”名称中有一个空格,我尝试了相同的操作,它可以正常运行,没有错误。
例如,我用我的AD管理员登录Azure SQL数据库,运行此查询以创建组帐户“ test gp”。
CREATE USER [test gp] FROM EXTERNAL PROVIDER WITH DEFAULT_SCHEMA = [dbo];
运行SELECT * FROM SYS.DATABASE_PRINCIPALS
,我们可以看到该组已在Azure SQL数据库中创建
我执行了TSQL:EXEC sp_addrolemember 'db_owner', 'test gp';
似乎一切正常,但是当断开我的SQL数据库并尝试使用组帐户“ test gp@****.com
”登录
您还可以引用以下博客:
我认为Azure SQL数据库不支持使用带有特殊字符的安全组名来登录数据库,例如空格(空白)。
希望这会有所帮助。