연습: MySQL에서 권한 구성

완료됨

이러한 랩 연습에서는 RBAC 역할을 할당하여 Azure Database for MySQL 리소스에 대한 액세스를 제어하고, MySQL GRANTS를 할당하여 데이터베이스 작업에 대한 액세스를 제어합니다.

중요

이 연습을 완료하려면 자체 Azure 구독이 필요합니다. Azure 구독이 아직 없는 경우 Azure 평가판을 만듭니다.

이 연습을 완료하려면 다음을 완료한 상태여야 합니다.

  • 리소스 그룹 만들기(모듈 1, 단원 5 참조).
  • Azure Database for MySQL 유연한 서버 만들기(모듈 1, 단원 5 참조).
  • MySQL Workbench를 다운로드하여 설치했습니다(모듈 2, 단원 5 참조).
  • zoodb 데이터베이스를 만들었습니다(모듈 2, 단원 5 참조).

마지막 랩을 완료한 후 Azure Database for MySQL 서버를 중지한 경우 지금 다시 시작합니다.

Microsoft Entra ID에서 새 사용자 계정 만들기

  1. Azure Portal에서 소유자 계정을 사용하여 로그인하고 Microsoft Entra ID로 이동합니다.

  2. 관리에서 사용자를 선택합니다.

  3. 왼쪽 위에서 새 사용자를 선택한 다음, 새 사용자 만들기를 선택합니다.

  4. 새 사용자 페이지에서 다음 세부 정보를 입력한 다음 만들기를 선택합니다.

    • 사용자 이름: Holly
    • 이름: Holly Rees
    • 암호:암호 직접 만들기를 선택한 다음 Pa$$w0rd를 입력합니다.

    사용자가 생성되면 나중에 로그인할 때 사용할 수 있도록 전체 사용자 계정 이름을 메모해 둡니다.

읽기 권한자 역할 할당

  1. Azure Portal에서 모든 리소스를 선택한 다음, Azure Database for MySQL 리소스를 선택합니다.
  2. 액세스 제어(IAM)를 선택한 다음, 역할 할당을 선택합니다. Holly Rees가 목록에 표시되지 않습니다.
  3. + 추가를 선택한 다음, 역할 할당 추가를 선택합니다.
  4. 읽기 권한자 역할을 선택하고 다음을 선택합니다.
  5. 멤버 목록에 Holly Rees를 추가하고 다음을 선택합니다.
  6. 검토 + 할당을 선택합니다.

읽기 권한자 역할 테스트

  1. Azure Portal의 오른쪽 위에서 사용자 계정을 선택한 다음 로그아웃을 선택합니다.
  2. 메모한 사용자 계정 이름과 암호 Pa$$w0rd를 사용하여 새 사용자로 로그인합니다. 메시지가 표시되면 기본 암호를 바꾸고 새 암호를 메모해 둡니다.
  3. 포털 홈페이지에서 모든 리소스를 선택한 다음, Azure Database for MySQL 리소스를 선택합니다.
  4. 중지를 선택합니다. 읽기 권한자 역할을 사용하면 리소스를 볼 수 있지만 변경할 수는 없으므로 오류가 표시됩니다.

기여자 역할 할당

  1. Azure Portal의 오른쪽 위에서 Holly의 사용자 계정을 선택한 다음 로그아웃을 선택합니다.
  2. 원래 소유자 계정을 사용하여 로그인합니다.
  3. Azure Database for MySQL 리소스로 이동한 다음 액세스 제어(IAM)를 선택합니다.
  4. + 추가를 선택한 다음, 역할 할당 추가를 선택합니다.
  5. 기여자 역할을 선택하고 다음을 선택합니다.
  6. 멤버 목록에 Holly Rees를 추가하고 다음을 선택합니다.
  7. 검토 + 할당을 선택합니다.
  8. 역할 할당을 선택합니다. Holly Rees는 이제 읽기 권한자 및 기여자 역할 둘 다에 할당되어 있습니다.

기여자 역할 테스트

  1. Azure Portal의 오른쪽 위에서 사용자 계정을 선택한 다음 로그아웃을 선택합니다.
  2. 메모해 둔 사용자 계정 이름과 암호를 사용하여 Holly Rees로 로그인합니다.
  3. 포털 홈페이지에서 모든 리소스를 선택한 다음, Azure Database for MySQL 리소스를 선택합니다.
  4. 중지를 선택한 다음 를 선택합니다. 이번에는 Holly에게 필요한 역할이 할당되어 있으므로 서버가 오류 없이 중지됩니다.
  5. 시작을 선택하여 MySQL 리소스가 다음 단계를 수행할 준비가 되었는지 확인합니다.
  6. Azure Portal의 오른쪽 위에서 Holly의 사용자 계정을 선택한 다음 로그아웃을 선택합니다.
  7. 원래 소유자 계정을 사용하여 로그인합니다.

Azure Database for MySQL에 대한 액세스 권한 부여

  1. MySQL Workbench를 열고 Azure Database for MySQL 서버에 연결합니다.

  2. 쿼리 창에서 다음 코드를 실행합니다. 연결하는 데 사용하는 데모 계정을 포함하여 6개의 사용자 계정이 반환되어야 합니다.

     SELECT user, host FROM mysql.user;
    
  3. 새 사용자를 만들려면 다음 코드를 실행합니다.

     CREATE USER 'dbuser'@'%' IDENTIFIED BY 'Pa$$w0rd';
    
  4. 새 사용자를 나열하려면 위의 SELECT 쿼리를 다시 실행합니다. dbuser@% 사용자가 나열된 것이 보여야 합니다.

  5. 새 사용자가 zoodb 데이터베이스의 모든 테이블에서 데이터를 쿼리하고 수정할 수 있도록 하려면 다음 코드를 실행합니다.

     GRANT SELECT, INSERT, UPDATE, DELETE ON zoodb.* TO 'dbuser'@'%';
     FLUSH PRIVILEGES;
    

새 사용자 테스트

  1. MySQL Workbench의 데이터베이스 메뉴에서 연결 관리를 선택합니다.

  2. Azure Database for MySQL에 대한 기존 연결을 선택한 다음 복제를 선택합니다.

  3. 복제된 연결의 사용자 이름 텍스트 상자에 dbuser를 입력합니다.

  4. 암호 옆에서 자격 증명 모음에 저장을 선택합니다.

  5. 암호 텍스트 상자에 Pa$$w0rd를 입력하고 확인을 클릭합니다.

    Screenshot showing the new user account in the Manage Connections dialog in MySQL Workbench.

  6. 연결 테스트를 클릭합니다. 연결에 성공하면 확인을 선택한 다음 닫기를 선택합니다.

  7. 데이터베이스 메뉴에서 데이터베이스에 연결을 선택합니다.

  8. 데이터베이스에 연결 대화 상자에서 새 연결을 선택한 다음 연결을 선택합니다.

  9. SELECT 권한이 있는지 테스트하려면 쿼리 창에서 다음 코드를 실행합니다.

     SELECT * FROM animal;
    
  10. UPDATE 권한이 있는지 테스트하려면 다음 코드를 실행합니다.

     UPDATE animal SET Name = "Linda Lioness" WHERE AnimalID = "6";
     SELECT * FROM animal;
    
  11. DROP 권한이 있는지 테스트하려면 다음 코드를 실행합니다. 오류가 있는 경우 다음 오류 코드를 확인합니다.

     DROP TABLE animal;
    
  12. GRANT 권한이 있는지 테스트하려면 다음 코드를 실행합니다.

     GRANT ALL PRIVILEGES ON zoodb.* TO 'dbuser'@'%';
    

이러한 테스트는 새 사용자가 DML(데이터 조작 언어) 명령을 실행하여 데이터를 쿼리하고 수정할 수 있지만 DDL(데이터 정의 언어) 명령을 사용하여 스키마를 변경할 수 없음을 보여 줍니다. 또한 새 사용자는 새 권한을 부여하여 권한을 우회할 수 없습니다.