Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 保留SQLServer权限_Sql Server_Sql Server 2005_Tsql - Fatal编程技术网

Sql server 保留SQLServer权限

Sql server 保留SQLServer权限,sql-server,sql-server-2005,tsql,Sql Server,Sql Server 2005,Tsql,如何在一段时间内阻止特定用户访问数据库,同时又不丢失用户对db对象的权限 基本上,当他回来时(即访问权被恢复时),他应该拥有在访问权被切断之前拥有的所有权限。如果我使用sp_revokedAccess'myuser',则用户myuser将失去他对db对象的所有权限 有没有一种方法可以保留myuser的权限而不必求助于繁琐的备份权限和恢复权限之类的解决方法?用户如何访问数据库?如果通过应用程序,则只需注销用户并要求用户重新验证。用户如何访问数据库?如果通过应用程序,则只需注销用户并要求用户重新验证

如何在一段时间内阻止特定用户访问数据库,同时又不丢失用户对db对象的权限

基本上,当他回来时(即访问权被恢复时),他应该拥有在访问权被切断之前拥有的所有权限。如果我使用sp_revokedAccess'myuser',则用户myuser将失去他对db对象的所有权限


有没有一种方法可以保留myuser的权限而不必求助于繁琐的备份权限和恢复权限之类的解决方法?

用户如何访问数据库?如果通过应用程序,则只需注销用户并要求用户重新验证。

用户如何访问数据库?如果通过应用程序,则只需注销用户并要求用户重新验证

我们希望在维护期间移除访问权限,但在完成后将其带回来

让维护过程在其正在处理的任何表上获取独占锁。这将锁定所有人,直到处理完成

我们希望在维护期间移除访问权限,但在完成后将其带回来


让维护过程在其正在处理的任何表上获取独占锁。这将锁定所有人,直到处理完成。

您可以将数据库切换到单用户模式吗


或在删除权限之前为其编写脚本:。我知道这是“备份权限和还原权限”-但是这个脚本使这个过程简单多了。

你能把数据库切换到单用户模式吗


或在删除权限之前为其编写脚本:。我知道这是“备份权限和还原权限”-但是这个脚本使这个过程简单多了。

你应该能够明确地拒绝他一个权限,然后撤销拒绝

您还可以使用
alterlogin。。。禁用
,但将在服务器级别而不是数据库级别阻止


黑客解决方案是将用户映射到不同的登录名,然后将其映射回(
ALTER user..login=…
),但这是一种黑客行为,我甚至不确定是否正常工作。

您应该能够显式拒绝他权限,然后撤销拒绝

您还可以使用
alterlogin。。。禁用
,但将在服务器级别而不是数据库级别阻止


黑客解决方案是将用户映射到不同的登录名,然后将其映射回(
ALTER user..login=…
),但这是一种黑客行为,我甚至不确定它是否正常工作。

我认为最简单的方法是禁用登录名。您可以在SSMS中状态页面下的登录属性上执行此操作

您可以使用以下T-SQL实现相同的功能:

假设您的登录名是sql登录名,但也可以是windows登录名

ALTER LOGIN bob DISABLE
然后,启用登录

ALTER LOGIN bob enable

我认为最简单的方法是禁用登录。您可以在SSMS中状态页面下的登录属性上执行此操作

您可以使用以下T-SQL实现相同的功能:

假设您的登录名是sql登录名,但也可以是windows登录名

ALTER LOGIN bob DISABLE
然后,启用登录

ALTER LOGIN bob enable

如果知道当前密码,请在维护窗口中将密码更改为临时值。将密码重新设置为其初始值可用于此目的,而无需对帐户进行任何重大更改。

如果知道当前密码,请在维护窗口中将密码更改为临时值。将密码重新设置为其初始值可用于此目的,而无需对帐户进行任何实质性更改。

如果您使用Windows身份验证,并且可以将此用户从域上的所有内容中锁定,则可以设置允许用户登录Active Directory的时间。我无法提供详细的说明,但现在ServerFault上应该有一些内容。

如果您使用Windows身份验证,并且可以从域中的所有内容锁定此用户,则可以设置允许用户登录Active Directory的时间。我不能提供详细的说明,但现在应该有一些关于ServerFault的信息。

想法:

  • 或(已弃用)

  • 您不能与DISABLE参数一起使用来拒绝对Windows组的访问(引用自链接)

  • 将所有权限分配给数据库角色,然后撤消用户的权限。在需要时将用户添加到角色。无论如何,直接将对象权限分配给用户是个坏主意

  • 若用户拥有系统管理员权限,那个么您根本不能拒绝它们(可能是连接SQL?)

  • 如果用户具有db_所有者权限(假定在db中设置),则不能拒绝数据库中除CONNECT之外的任何内容

  • 想法:

  • 或(已弃用)

  • 您不能与DISABLE参数一起使用来拒绝对Windows组的访问(引用自链接)

  • 将所有权限分配给数据库角色,然后撤消用户的权限。在需要时将用户添加到角色。无论如何,直接将对象权限分配给用户是个坏主意

  • 若用户拥有系统管理员权限,那个么您根本不能拒绝它们(可能是连接SQL?)

  • 如果用户具有db_所有者权限(假定在db中设置),则不能拒绝数据库中除CONNECT之外的任何内容


  • 这是一个应用程序用户id-我们希望在维护期间删除访问权限,但在完成后将其带回来。这是一个应用程序用户id-我们希望在维护期间删除访问权限,但在完成后将其带回来。谢谢大家-我将使用拒绝连接-因为我的要求是sql 2005。我检查了SQL2000。在2000年的时候,就应该禁用登录了。再次感谢Hanks all-我将使用DENY CONNECT-因为我的要求是sql 2005。我检查了SQL2000。在2000年的时候,就应该禁用登录了。再次感谢