문제

Sql Server 2000/2005에는 수백 개의 저장 프로시저에 대한 액세스 권한을 부여받아야 하는 몇 개의 NT 사용자 그룹이 있습니다.

그렇게 할 수 있는 좋은 쉬운 방법이 있나요?

도움이 되었습니까?

해결책

다음은 많은 절차에 권한을 부여하는 데 사용하는 스크립트입니다.

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

선택 항목을 수정하여 보다 구체적인 저장된 프로세스 그룹에 접근할 수 있습니다.

다른 팁

  • SQL Server에서 역할을 만듭니다.
  • 그 역할 권한을 부여하는 스크로프를 작성하는 스크립트를 작성하십시오.
  • 해당 NT 사용자 그룹을 해당 역할에 추가합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top