수백 개의 SP에 대한 액세스 권한을 부여하시겠습니까?
-
09-06-2019 - |
문제
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 사용자 그룹을 해당 역할에 추가합니다.
제휴하지 않습니다 StackOverflow