연습 - 인증 구성

완료됨

이 연습에서는 로그인, 사용자 및 관리자를 만들고, SQL Server의 일반 사용자와 마찬가지로 Microsoft Entra 사용자에게 데이터베이스 액세스 권한을 부여합니다.

  1. SSMS(SQL Server Management Studio)를 열고 Azure SQL Database 논리 서버에 연결합니다(아직 연결하지 않은 경우).

  2. 데이터베이스 구성 및 연결이 완료된 후 다른 사용자를 추가하고 이 사용자에게 액세스를 부여할 수 있습니다. SQL Server에서처럼 새 로그인 및 사용자를 추가할 수 있습니다.

    SSMS에서 데이터베이스 서버를 마우스 오른쪽 단추로 클릭하고 새 쿼리를 선택한 후 다음 명령을 사용하여 새 쿼리를 만듭니다. 실행을 선택하여 쿼리를 실행합니다.

    -- Create a new SQL login and give them a password
    CREATE LOGIN ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
    

    Azure SQL Database에서 대부분의 쿼리는 Azure SQL Database 논리 서버 내에서 ‘데이터베이스’를 마우스 오른쪽 단추로 클릭해야 합니다. SQL Server 및 Azure SQL Managed Instance에서 서버 수준으로 쿼리하고 USE <DatabaseName>을 사용할 수 있지만, Azure SQL Database에서는 데이터베이스를 직접 쿼리해야 합니다. 이는 USE 문이 지원되지 않기 때문입니다. Azure SQL Database에서 데이터베이스를 쿼리하는 데 몇 가지 예외가 있는데 그중 하나가 바로 로그인입니다. 가상 master 데이터베이스에 연결하여 로그인을 만들고 변경해야 합니다.

    이제 서버 수준에서 로그인을 사용할 수 있습니다. 다음 단계는 AdventureWorks 데이터베이스에서 사용자를 만들고 필요한 경우 읽기/쓰기 권한을 부여하는 것입니다. AdventureWorks 데이터베이스를 마우스 오른쪽 단추로 클릭하고 새 쿼리를 선택합니다. 다음 명령을 사용하여 새 쿼리를 만든 후 실행을 선택합니다.

    -- Create a new SQL user from that login
    CREATE USER ApplicationUser FOR LOGIN ApplicationUser;
    
    -- Until you run the following two lines, ApplicationUser has no access to read or write data
    ALTER ROLE db_datareader ADD MEMBER ApplicationUser;
    ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
    

    사용자는 전체 서버가 아닌 AdventureWorks 데이터베이스에만 로그인할 수 있습니다.

    사용자가 관리자 작업을 실행할 수 있어야 하는 경우를 제외하면, 데이터베이스 수준에서 관리자가 아닌 계정을 만드는 것이 모범 사례입니다.

  3. SQL Server의 경우 포함된 데이터베이스 사용자라는 개념에 익숙하실 것입니다. 즉, 사용자는 특정 데이터베이스에만 액세스할 수 있으며 서버에는 로그인할 수 없습니다. 내 Azure SQL Database에서 SQL 인증 또는 Microsoft Entra 인증을 사용하여 포함된 데이터베이스 사용자를 만들 수 있습니다. 그렇게 하려면 사용자 액세스를 만들고자 하는 사용자 데이터베이스의 컨텍스트(master가 아님)에 있어야 합니다. SSMS에서 데이터베이스를 마우스 오른쪽 단추로 클릭하고 새 쿼리를 선택합니다. 다음 명령을 사용하여 새 쿼리를 만든 후 실행을 선택합니다.

    CREATE USER MyDatabaseUser WITH PASSWORD = 'C0mpl3xPa55word!'
    
  4. 개체 탐색기 왼쪽 상단에서 연결을 선택한 다음 데이터베이스 엔진을 선택합니다. Azure SQL Database 논리 서버에 연결되도록 기본 페이지를 구성합니다. 로그인MyDatabaseUser를 입력하고 암호C0mpl3xPa55word!를 입력합니다.

  5. 또한 데이터베이스 이름을 설정해야 하는데, 이는 옵션>추가 연결 매개 변수로 이동한 다음 Initial Catalog=AdventureWorks를 입력하여 수행할 수 있습니다. 이 작업은 수동으로 수행해야 하는데, 이는 MyDatabaseUser가 데이터베이스 선택을 위해 서버를 스캔할 수 없기 때문입니다.

  6. 연결을 선택한 다음, 데이터베이스에 액세스할 수 있는지 확인합니다.

  7. 정리 단계로, MyDatabaseUser로부터의 연결을 마우스 오른쪽 단추로 클릭하고 연결 해제를 선택합니다.

다른 Microsoft Entra 사용자에게 액세스 권한 부여

CREATE USER [anna@contoso.com] FROM EXTERNAL PROVIDER T-SQL 구문을 사용하여 포함된 데이터베이스 사용자로 Microsoft Entra 계정에서 로그인을 만들 수 있습니다. 포함된 데이터베이스 사용자는 데이터베이스와 연결된 Microsoft Entra 디렉터리의 ID에 매핑되며, master 데이터베이스에는 로그인이 없습니다.

Azure SQL Database에 Microsoft Entra 서버 로그인이 도입되면 SQL Database 가상 master 데이터베이스의 Microsoft Entra 보안 주체에서 로그인을 만들 수 있습니다. Microsoft Entra 사용자, 그룹 및 서비스 주체에서 Microsoft Entra 로그인을 만들 수 있습니다. 자세한 내용은 Microsoft Entra 서버 보안 주체를 참조하세요.

또한 Azure Portal을 사용하여 관리자를 만들 수 있으며 Azure 역할 기반 액세스 제어 역할은 Azure SQL Database 논리 서버에 전파되지 않습니다. T-SQL(Transact-SQL)을 사용하여 추가 서버 및 데이터베이스 사용 권한을 부여해야 합니다.