设置每个连接的用户权限?

时间:2018-10-31 08:55:28

标签: sql-server user-permissions

是否可以通过某种方式在SQL Server中为每个连接设置用户权限?

例如:

DENY insert ON all TO user
DENY update ON all TO user
DENY delete ON all TO user

因此,假设用户在我的应用程序中以sa的身份连接(*请参见“编辑”),我是否可以在某个时候以某种方式更改(并可能恢复)该用户的权限(因此,例如只读访问权限)?

编辑:很抱歉,您输入了错误的示例。该用户不是sa,而是其他具有完全访问权限的用户。

2 个答案:

答案 0 :(得分:1)

正如我在评论中提到的那样,权限不是在连接级别设置的,而是在登录和用户级别设置的。

如果您有连接,并且更改了所使用的登录名/用户的权限,则这些权限将立即应用于该连接以及其他任何连接;因此,使用登录名和用户AppUser的连接不能对具有相同登录名和用户的另一个连接用户具有不同的权限。

如果您需要一个应用程序对不同的事物具有不同的权限,则创建多个登录名和用户没有错。每个人都有自己的权限。然后,根据所需的角色,使用不同的连接字符串来控制应用程序使用我的登录名。这是相当普遍的做法。例如,您的应用程序的安全模型可能具有不同的数据库,因此使用不同的登录名对该数据库进行更改。

答案 1 :(得分:0)