【问题标题】:temporary deny acces to sql server for certain users临时拒绝某些用户访问 sql server
【发布时间】:2013-08-08 07:30:03
【问题描述】:

我有一个数据库,它是一个数据仓库环境,它使用 ETL 过程加载数据。

在 ETL 过程中,我希望使数据库无法用于查询某些角色。

什么是可能的解决方案?

【问题讨论】:

  • 能否提供您尝试过的代码?
  • @Hexie 有时最好在发表评论之前考虑一下。这不是选择查询或类似的东西,他需要帮助,而是配置修改
  • 看看这里,可能对你有帮助:stackoverflow.com/questions/4143558/…

标签: sql-server transactions isolation-level transaction-isolation


【解决方案1】:

我认为最简单的答案是 REVOKE PERMISSIONS 在 ETL 过程中滚动并在最后(或失败时)反转它。

【讨论】:

  • 感谢您的回复。撤销是一种选择。但是撤销令我感到困扰的是我必须单独指定表格。我宁愿用一个命令撤销所有访问权限。
  • 假设您要“隐藏”的所有表都在一个 SCHEMA 中,您只需撤销对该 SCHEMA 的权限即可。这有帮助吗?
  • 我认为这是个好主意。我会试试的。
  • 让我知道它是否有效。如果没有,我会尽力帮助您找到其他东西。
  • 它有效;-)。架构级别的拒绝会否决对象级别的所有授权。因此,当我启动 ETL 时,我将在模式级别拒绝 SELECT,在 ETL 完成后,我将撤销该拒绝。感谢您的帮助。
【解决方案2】:

一种选择是创建一个存储过程来修改角色的权限,然后断开用户连接,然后在数据加载后重置权限。

另一种方法是在没有人使用系统时运行您的 ETL 进程...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多