2008-09-17 11 views

Antwort

1

Hier ist ein Skript, das ich für Berechtigungen für viele Verfahren gewähren:

DECLARE @DB sysname ; set @DB = DB_NAME() 
DECLARE @U sysname ; set @U = QUOTENAME('UserID') 

DECLARE @ID   integer, 
     @LAST_ID  integer, 
     @NAME  varchar(1000), 
     @SQL   varchar(4000) 

SET @LAST_ID = 0 

WHILE @LAST_ID IS NOT NULL 
BEGIN 
    SELECT @ID = MIN(id) 
    FROM dbo.sysobjects 
    WHERE id > @LAST_ID AND type = 'P' AND category = 0 

    SET @LAST_ID = @ID 

    -- We have a record so go get the name 
    IF @ID IS NOT NULL 
    BEGIN 
     SELECT @NAME = name 
     FROM dbo.sysobjects 
     WHERE id = @ID 

     -- Build the DCL to do the GRANT 
     SET @SQL = 'GRANT EXECUTE ON ' + @NAME + ' TO ' + @U 

     -- Run the SQL Statement you just generated 
     EXEC master.dbo.xp_execresultset @SQL, @DB 

    END 
END 

Sie die Auswahl ändern zu bekommen, um eine bestimmte Gruppe von gespeicherten Procs.

4
  • Erstellen Sie eine Rolle in SQL Server.
  • Schreiben Sie ein Skript, das dieser Rolle die Berechtigung gewährt, diese Sprocs zu verwenden.
  • Fügen Sie diese NT-Benutzergruppen zu dieser Rolle hinzu.