【发布时间】:2026-01-23 06:45:02
【问题描述】:
是否可以在 SQL-Server 中为每个连接设置用户权限?
例如:
DENY insert ON all TO user
DENY update ON all TO user
DENY delete ON all TO user
所以,假设一个用户在我的应用程序中连接为sa(* 请参阅编辑),我可以在某个时候以某种方式更改(并可能恢复)该用户的权限(例如,那时他有一个读取- 仅访问)?
编辑:抱歉举了一个错误的例子。该用户不是sa,而是其他具有完全访问权限的用户。
【问题讨论】:
-
sa在 SQL Server 上实际上是“上帝模式”。你不能DENY和sa做任何事;即使你给他们DENY权限sa>all other permissions。如果您想限制某人的权限,请为他们创建一个具有适当权限的登录名和用户。 不要让人们访问sa帐户;只有在所有其他选项都用尽时,系统管理员才能使用它。 -
@Larnu,
sa是具有完全访问权限的用户的示例 -
是的,你不能降低
sa的权限,所以不要让它们像它一样连接。 -
@Larnu,我可以根据连接降低其他用户(不是
sa)的权限吗? (抱歉提供错误信息 - 用户实际上不是sa) -
没有。如果您希望连接具有不同的权限,请使用不同的登录名。权限设置在登录和用户级别,连接没有权限。如果您在连接时更改登录/用户的权限,它将立即拥有这些权限(不需要建立新连接),因此如果有多个连接,它将影响所有连接。应用程序可以访问不同登录用户以执行不同任务并没有错;事实上,我认为这很常见;这是简单的权限隔离。
标签: sql-server user-permissions