允许用户 "GRANT SELECT" 而不让他们成为管理员或授予他们 CONTROL 权限
Letting users "GRANT SELECT" without making them admins or giving them CONTROL permission
背景资料:
我在 SSMS 中管理一个数据库。我是唯一的管理员。我有用户创建表,然后他们想将这些表的 select 权限授予其他用户。但他们不允许这样做,因为他们不是管理员或对架构没有 CONTROL 权限。
问题:
作为 SSMS 数据库管理员,我如何让用户将他们创建的表的 SELECT 授予其他用户,而不让他们成为管理员或授予他们 CONTROL 权限?
我只会让用户按照以下方式在他们自己的模式中创建一个 table(SSMS 语法可能不同,这只是为了说明):
create table select_access (
table_name varchar[50],
user_name varchar[50],
is_active varchar
)
然后 运行 定期(例如,每五分钟或十分钟)进行管理工作,并为每个适用的用户检查 table.
中的条目
如果 table 不是 的条目当前具有权限(is_active
设置为 Y
),则授予权限.如果 table 的条目当前 具有 权限(is_active
设置为 N
),请删除权限。
这样一来,他们就可以完全控制 table 的 select 权限,而无需您参与。
要共享 table,他们只需创建它,为他们想要与之共享的每个用户添加条目到 select_access
,然后等待你的工作到 运行。
要禁用,他们只需将 is_active
字段设置为 N
以供他们想要撤销其访问权限的用户使用,然后再次等待您的工作 运行。
使用is_active
只是为了让您的生活更轻松,因为您唯一需要的信息来源就是table。
你 可以 通过让他们删除给定 user/table 的行来让它变得更聪明,但是你必须处理 table 和 他们的所有 table 可能已授予访问权限但不再在 select_access
.
中具有条目
只需确保他们授予权限的任何 table 是 他们的 模式中的 table,而不是系统 table 中的一个 table :-)
背景资料: 我在 SSMS 中管理一个数据库。我是唯一的管理员。我有用户创建表,然后他们想将这些表的 select 权限授予其他用户。但他们不允许这样做,因为他们不是管理员或对架构没有 CONTROL 权限。
问题: 作为 SSMS 数据库管理员,我如何让用户将他们创建的表的 SELECT 授予其他用户,而不让他们成为管理员或授予他们 CONTROL 权限?
我只会让用户按照以下方式在他们自己的模式中创建一个 table(SSMS 语法可能不同,这只是为了说明):
create table select_access (
table_name varchar[50],
user_name varchar[50],
is_active varchar
)
然后 运行 定期(例如,每五分钟或十分钟)进行管理工作,并为每个适用的用户检查 table.
中的条目如果 table 不是 的条目当前具有权限(is_active
设置为 Y
),则授予权限.如果 table 的条目当前 具有 权限(is_active
设置为 N
),请删除权限。
这样一来,他们就可以完全控制 table 的 select 权限,而无需您参与。
要共享 table,他们只需创建它,为他们想要与之共享的每个用户添加条目到 select_access
,然后等待你的工作到 运行。
要禁用,他们只需将 is_active
字段设置为 N
以供他们想要撤销其访问权限的用户使用,然后再次等待您的工作 运行。
使用is_active
只是为了让您的生活更轻松,因为您唯一需要的信息来源就是table。
你 可以 通过让他们删除给定 user/table 的行来让它变得更聪明,但是你必须处理 table 和 他们的所有 table 可能已授予访问权限但不再在 select_access
.
只需确保他们授予权限的任何 table 是 他们的 模式中的 table,而不是系统 table 中的一个 table :-)