none
SQL Server 2008中如何使用其他身份执行SQL语句? RRS feed

  • 问题

  • 问题是这样的,我平时用的登录用户没有create database权限,因此我无法restore数据库。我们的dba组说会提供一个脚本,我运行这个脚本就能restore数据库了。脚本我还没拿到,但是我不明白的是如何实现呢?我google一下,可以使用execute as命令,但是我迷惑的是,如果提供了这种方法的话,还要权限有什么用呢?当前登录用户可以任意使用SA账户去执行SQL,相当于什么权限都有了。

    望高手赐教。

    刘铭

    2012年7月17日 9:36

答案

  • 这是一个可行的方案,但是不是唯一可用的方案。

    另外,3. 创建SP时,对SP进行加密,如此一来,我就无法修改SP内容。这也是不必要的,加密和控制权限没有联系。

    restore database也不需要sa那么高的权限。


    想不想时已是想,不如不想都不想。

    • 已标记为答案 刘 铭 2012年7月19日 8:27
    2012年7月18日 3:37
    版主
  • Like run restore script via proxy account.
    • 已标记为答案 刘 铭 2012年7月19日 8:27
    2012年7月18日 13:15

全部回复

  • 当然不是任意使用的,需要dba先给你授权。

    想不想时已是想,不如不想都不想。

    2012年7月17日 11:58
    版主
  • And dba will not let you alter that sp.
    2012年7月17日 12:53
  • 楼主可以查下联机帮助上,EXECUTE AS 的语法,最后面有部分有权限需求说明的

    2012年7月17日 13:57
  • 非常感谢各位的解答。我是不是可以这样理解:

    1. DBA创建一个stored procedure,用来restore database。备份文件以及要还原的数据库名字,均在SP中hard code,或者设为参数。

    2. 创建SP时,使用Execute AS子句,允许我所使用的登录用户以SA身份执行这个SP。

    3. 创建SP时,对SP进行加密,如此一来,我就无法修改SP内容。

    4. 当我使用我的帐号登录后,执行这个SP。其将以SA的身份restore database。


    2012年7月18日 1:33
  • 这是一个可行的方案,但是不是唯一可用的方案。

    另外,3. 创建SP时,对SP进行加密,如此一来,我就无法修改SP内容。这也是不必要的,加密和控制权限没有联系。

    restore database也不需要sa那么高的权限。


    想不想时已是想,不如不想都不想。

    • 已标记为答案 刘 铭 2012年7月19日 8:27
    2012年7月18日 3:37
    版主
  • 您好!非常感谢您的回复。关于您提到的“其他可用方案”,可否指教一二?


    2012年7月18日 5:52
  • Like run restore script via proxy account.
    • 已标记为答案 刘 铭 2012年7月19日 8:27
    2012年7月18日 13:15
  • 非常感谢大家!
    2012年7月19日 7:14
  • 你说的基本没有错

    但是“对SP进行加密,如此一来,我就无法修改SP内容”,这个应该做不到


    给我写信: QQ我:点击这里给我发消息

    2012年7月23日 22:19