programing

SQL Server에 데이터베이스 역할이 있는지 확인하는 방법은 무엇입니까?

padding 2023. 8. 6. 09:52
반응형

SQL Server에 데이터베이스 역할이 있는지 확인하는 방법은 무엇입니까?

SQL Server에 데이터베이스 역할이 있는지 확인하는 방법을 알아보고 있습니다.저는 다음과 같은 일을 하고 싶습니다.

if not exists (select 1 from sometable where rolename='role')
begin
CREATE ROLE role
    AUTHORIZATION MyUser;
end

여기서 어떤 테이블/프로시저를 사용해야 합니까?

SELECT DATABASE_PRINCIPAL_ID('role')
--or
IF DATABASE_PRINCIPAL_ID('role') IS NULL

USER_ID가 더 이상 사용되지 않으며 손상될 수 있습니다.CREATE ROLE은 SQL 2005+를 나타내므로 괜찮습니다.

if not exists (select 1 from sys.database_principals where name='role' and Type = 'R')
begin
CREATE ROLE role
    AUTHORIZATION MyUser;
end

언급URL : https://stackoverflow.com/questions/1201160/how-do-i-determine-if-a-database-role-exists-in-sql-server

반응형