복붙노트

[SQL] GRANT 모든 저장 프로 시저 실행을

SQL

GRANT 모든 저장 프로 시저 실행을

다음 명령을 효과적으로 사용자 주는가 "참고 MyUser를,"권한은 모두 데이터베이스에 저장 프로 시저를 실행하려면?

GRANT EXECUTE TO [MyDomain\MyUser]

해결법

  1. ==============================

    1.SQL Server 2008 및 위 :

    SQL Server 2008 및 위 :

    /* CREATE A NEW ROLE */
    CREATE ROLE db_executor
    
    /* GRANT EXECUTE TO THE ROLE */
    GRANT EXECUTE TO db_executor
    

    단지 사용자 (안 역할)의 경우 :

    USE [DBName]
    GO
    GRANT EXECUTE TO [user]
    
  2. ==============================

    2.SQL Server 2005는 당신이 설명한대로 데이터베이스, 데이터베이스 원리에 실행 권한을 부여 할 수있는 기능을 도입 :

    SQL Server 2005는 당신이 설명한대로 데이터베이스, 데이터베이스 원리에 실행 권한을 부여 할 수있는 기능을 도입 :

    GRANT EXECUTE TO [MyDomain\MyUser]
    

    즉 암시 적으로 모든 스키마의 모든 저장 프로 시저를 포함하는 데이터베이스 범위에서 권한을 부여합니다. 명시 적으로 저장 프로 시저에 따라 권한을 부여 할 필요가 없습니다이 의미합니다.

    당신은 또한 당신이 더 세분화되고 싶은 경우 스키마가 실행 권한을 부여하여 제한 할 수 있습니다 :

    GRANT EXECUTE ON SCHEMA ::dbo TO [MyDomain\MyUser]
    
  3. ==============================

    3.위의 답변뿐만 아니라, 내가 추가하고 싶습니다 :

    위의 답변뿐만 아니라, 내가 추가하고 싶습니다 :

    대신 역할에이 권한을 부여하고 사용자 (들)에게 역할을 할당 할 수 있습니다. 당신은을 통해 역할 myAppRights을 만든 가정 해

    CREATE ROLE [myAppRights] 
    

    당신은을 통해 실행 권한을 부여 할 수 있습니다

    GRANT EXECUTE TO [myAppRights] 
    

    그 역할에.

    또는, 스키마 수준에서 그것을 수행하려는 경우 :

    GRANT EXECUTE ON SCHEMA ::dbo TO [myAppRights]
    

    또한 (이 예에서는 역할 myAppRights 나중에 스키마 DBO의 모든 요소에 대한 권리를 실행해야합니다) 작동합니다.

    좀 더 복잡한 액세스 프로파일을 작성하려는 경우 특히 유용합니다 - 당신이 나중에 그것을 변경해야하는 경우 및 할당 할 수 있습니다 / 사용자로부터 / 쉽게 모든 관련 응용 프로그램 권한을 취소하면이 방법, 당신은 단지 그것을 할 수 있습니다.

    참고 : 나중에 만든 것이다 요소에 영향을 미치는 스키마에 역할을 부여하면 -이, 이익 또는 의도 된 설계에 따라하지 수 있도록 명심 수 있습니다.

  4. ==============================

    4.GRANT EXECUTE TO [역할]

    GRANT EXECUTE TO [역할]

    이것은 확실히 도움

  5. from https://stackoverflow.com/questions/9321334/grant-execute-to-all-stored-procedures by cc-by-sa and MIT license