各位大虾  
我想在sql server 2005中新建一个用户  这个用户只能访问存储过程  如何去做这个权限  
自己试了好多次都不行  希望大家帮帮忙  谢谢  小弟QQ 610116652

解决方案 »

  1.   

    可以的,测试代码如下,供参考.--新建Login
    CREATE LOGIN [tlogin] WITH PASSWORD=N'123456', DEFAULT_DATABASE=[CC], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF--打开数据库
    USE CC--新建User
    CREATE USER [tlogin] FOR LOGIN [tlogin]--授权可查看(view)的存储过程(spname)给该User
    GRANT VIEW DEFINITION ON [dbo].[spname] TO [tlogin]
      

  2.   

    USE [master]
    GO
    CREATE LOGIN [TUser] WITH PASSWORD=N'1', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
    GO
    USE [Test]
    GO
    CREATE USER [TUser] FOR LOGIN [TUser]
    GOGRANT EXECUTE TO [TUser]
    GO--測試CREATE PROCEDURE p
    AS
    SELECT 1GO
    EXECUTE AS LOGIN='TUser'
    go
    EXEC p
      

  3.   

    关键是这句:
    GRANT VIEW DEFINITION ON [dbo].[spname] TO [tlogin]