代码之家  ›  专栏  ›  技术社区  ›  Chicago

如何在没有系统管理员权限的情况下更改链接服务器上的数据库?

  •  0
  • Chicago  · 技术社区  · 15 年前

    我的要求是用户 不能 (它可以拥有所有其他权限,但不能拥有sysadmin)。

    我正在从本地服务器运行一个查询,它应该修改一个远程服务器

    EXEC ('ALTER DATABASE REMOTEDB MODIFY FILEGROUP ftfg_REMOTEDB NAME=ftfg_REMOTEDB') at [REMOTESERVER]
    

    一旦我向用户添加sysadmin权限,此查询就会工作,但如果没有该权限,则会出现以下错误:

    The server principal "USERWITHOUTSYSADMIN" is not able to access the database "REMOTEDB" under the current security context.
    

    我在SQL Server 2008上。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Chicago    14 年前

    经过大量研究:这是不可能的:(

        2
  •  0
  •   Nathan Wheeler    15 年前

    将EXEC命令放入存储过程中,并向用户授予对该过程的execute。它不会阻止系统管理员执行它,但也允许其他人执行它。小心点,小心点!

        3
  •  0
  •   Joe Stefanelli    15 年前

    您能允许用户模拟具有适当权限的人吗?

    EXEC ('ALTER DATABASE REMOTEDB MODIFY FILEGROUP ftfg_REMOTEDB NAME=ftfg_REMOTEDB') 
        AS USER = 'UserWithAppropriatePermissions'
        AT [REMOTESERVER]
    
    推荐文章