我在sql server 创建一个登录,并设置访问数据库A,设置该用户访问数据库时,可以设置某个表只可读,某个表可写和某个存储过程不可执行,但是无法限制该用户查看(注意是查看,不是执行)存储过程,怎样才能限制该用户查看我的存储过程呢?

解决方案 »

  1.   

    use [master]
    GO
    DENY VIEW DEFINITION ON [dbo].[backupcontrol] TO [guest]
    GO
    禁止GUEST 用户对某个存储过程的VIEW权限
      

  2.   

    to:xuexiaodong2009
    加密可以解密,不安全
      

  3.   

    那么sql语句就是最不安全的了  是吗?
      

  4.   

    to liuhuayang:
    我在sql server 2000 开发版的查询分析器中执行以下语句:DENY VIEW DEFINITION on aaa to pay怎么老是提示:在关键字 'VIEW' 附近有语法错误。
      

  5.   

    可以自己查看下2000联机丛书的DENY用法。限制执行存储过程的权限语法是:
    USE AdventureWorks;
    DENY EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
        TO Recruiting11;
    GO 不过要一条条限制。
      

  6.   


    当然有错误了,请你注意PAY 是你数据库中的一个用户,而不是登录用户,只要是登录用户,那一定是会报错的, 你还是用GUI 界面吧1 找到你的AAA
    2 右键属性
    3 permissions --- search
    4 找到你要限制的用户
    5 DENY VIEW
    6 OK你的任务完成
      

  7.   

    to liuhuayang:
       在数据库对象的属性窗口->"权限"界面下,只有select,insert,update,delete,exec,dri,就是没有view啊,是不是版本不同?我的版本是sql server 2000 开发版.
        谢谢!
      

  8.   

    昏倒了SQL SERVER 2000,sorry,只有SQL SERVER 2005 和SQL SERVER 2008 有这个功能SQL SERVER 2000 不支持,建议在你开发完毕后,将其导入到2005 在做限制