2008-09-17 8 views

Répondre

1

est ici un script que j'utilise pour accorder des autorisations à beaucoup de procédures:

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 

Vous pouvez modifier la sélection pour se rendre à un groupe plus spécifique de procs stockés.

4
  • Créez un rôle dans le serveur SQL.
  • Écrivez un script qui accorde ce rôle l'autorisation d'utiliser ces sprocs.
  • Ajoutez ces groupes d'utilisateurs NT à ce rôle.
Questions connexes