我可以使用SqlServerDsc模块的PowerShell DSC资源实现以下T-SQL代码吗?
USE master
GRANT ALTER trace TO [myUser]
我尝试了以下操作,但没有成功:
SqlDatabasePermission Grant_Alter_Trace_Permission
{
Ensure = 'Present'
Name = 'mySQLUser'
Database = 'master'
PermissionState = 'Grant'
Permissions = 'ALTER TRACE'
ServerName = 'sqltest.company.local'
InstanceName = 'MSSQLSERVER'
}
资源失败,出现以下错误:
PowerShell DSC资源DSC_SqlDatabasePermission执行Set-TargetResource功能失败,错误提示:System. sh。InvalidOperationException:名称'mySqlUser'既不是数据库用户,也不是数据库角色(用户定义的),也不是数据库'master'中的数据库应用程序角色。
谢谢你的帮助!
ALTER TRACE是服务器权限,而不是数据库权限。因此,如果存在这样的东西,请尝试SqlServerPermission
而不是SqlDatabasePermission
。
你可以通过在Master中为mySQLUser创建一个用户来解决这个问题。我的猜测是,DSC在运行
之前正在检查数据库主体是否存在。GRANT ALTER trace TO [MyUser]
如果登录存在,如果您可以说服DSC尝试,那么该授权将成功。