在具有特定命名模式的表上授予选择权

Dar*_*lic 0 sql-server permissions

如何在所有以 开头的表上授予选择权VVC_

grant select on VVC_* to user1
Run Code Online (Sandbox Code Playgroud)

Mar*_*ith 7

没有用于授予对匹配模式的表的权限的内置方法。您需要将其授予各个表。

不过,通过查询sys.tables名称来生成所需的脚本会很容易like 'VVC[_]%'

您可以创建 VVC 架构,而不是使用 VVC 前缀。然后,您可以授予对架构的选择权限。这也将迎合将来添加到同一架构中的表。


Aar*_*and 7

假设它们都在dbo架构中:

DECLARE @sql nvarchar(max) = N'';

SELECT @sql += N'GRANT SELECT ON dbo.' + QUOTENAME(t.name)
  + N' TO [User1];'
FROM sys.tables AS t
WHERE t.name LIKE N'VVC[_]%'
AND t.[schema_id] = 1;

EXEC sys.sp_executesql @sql;
Run Code Online (Sandbox Code Playgroud)

但是 Martin 是对的,使用模式比使用字符串前缀要好得多。