쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

AWS DMS Fleet Advisor용 데이터베이스 사용자 생성

포커스 모드
AWS DMS Fleet Advisor용 데이터베이스 사용자 생성 - AWS 데이터베이스 마이그레이션 서비스

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

이 섹션에서는 DMS 데이터 수집기에 필요한 최소 권한을 가진 소스 데이터베이스 사용자를 생성하는 방법을 설명합니다.

AWS DMS Fleet Advisor와 함께 데이터베이스 사용자 사용

DMS 데이터 수집기에서는 root 이외의 데이터베이스 사용자를 사용할 수 있습니다. 인벤토리에 데이터베이스를 추가한 후 데이터 수집기를 실행하기 전에 사용자 이름과 암호를 지정하십시오. 인벤토리에 데이터베이스를 추가하는 방법에 관한 자세한 내용은 에서 모니터링되는 객체 관리 AWS DMS 단원을 참조하십시오.

DMS 데이터 수집기 사용을 마친 후에는 생성한 데이터베이스 사용자를 삭제할 수 있습니다. 자세한 내용은 데이터베이스 사용자 삭제 단원을 참조하십시오.

중요

다음 예제에서는 {your_user_name}을 데이터베이스용으로 만든 데이터베이스 사용자 이름으로 바꿉니다. 그런 다음, {your_password}를 안전한 비밀번호로 바꾸십시오.

MySQL을 사용하여 데이터베이스 사용자 생성

MySQL 소스 데이터베이스에서 데이터베이스 사용자를 생성하려면 다음 스크립트를 사용합니다. MySQL 데이터베이스 버전에 따라 한 가지 버전의 GRANT 문을 유지해야 합니다.

CREATE USER {your_user_name} identified BY '{your_password}'; GRANT PROCESS ON *.* TO {your_user_name}; GRANT REFERENCES ON *.* TO {your_user_name}; GRANT TRIGGER ON *.* TO {your_user_name}; GRANT EXECUTE ON *.* TO {your_user_name}; # For MySQL versions lower than 8.0, use the following statement. GRANT SELECT, CREATE TEMPORARY TABLES ON `temp`.* TO {your_user_name}; # For MySQL versions 8.0 and higher, use the following statement. GRANT SELECT, CREATE TEMPORARY TABLES ON `mysql`.* TO {your_user_name}; GRANT SELECT ON performance_schema.* TO {your_user_name}; SELECT IF(round(Value1 + Value2 / 100 + Value3 / 10000, 4) > 5.0129, 'GRANT EVENT ON *.* TO {your_user_name};', 'SELECT ''Events are not applicable'';') sql_statement INTO @stringStatement FROM ( SELECT substring_index(ver, '.', 1) value1, substring_index(substring_index(ver, '.', 2), '.', - 1) value2, substring_index(ver, '.', - 1) value3 FROM ( SELECT IF((@@version regexp '[^0-9\.]+') != 0, @@innodb_version, @@version) AS ver FROM dual ) vercase ) v; PREPARE sqlStatement FROM @stringStatement; SET @stringStatement := NULL; EXECUTE sqlStatement; DEALLOCATE PREPARE sqlStatement;

Oracle을 사용하여 데이터베이스 사용자 생성

Oracle 소스 데이터베이스에서 데이터베이스 사용자를 생성하려면 다음 스크립트를 사용합니다.

이 SQL 스크립트를 실행하려면 SYSDBA 권한을 사용하여 Oracle 데이터베이스에 연결하십시오. 이 SQL 스크립트를 실행한 후 이 스크립트로 생성한 사용자의 보안 인증을 사용하여 데이터베이스에 연결합니다. 또한 이 사용자의 보안 인증을 사용하여 DMS 데이터 수집기를 실행할 수 있습니다.

다음 스크립트는 Oracle 멀티테넌트 컨테이너 데이터베이스(CDB)의 사용자 이름에 C## 접두사를 추가합니다.

CREATE USER {your_user_name} IDENTIFIED BY "{your_password}"; GRANT CREATE SESSION TO {your_user_name}; GRANT SELECT ANY DICTIONARY TO {your_user_name}; GRANT SELECT ON DBA_WM_SYS_PRIVS TO {your_user_name}; BEGIN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL( acl => UPPER('{your_user_name}') || '_Connect_Access.xml', description => 'Connect Network', principal => UPPER('{your_user_name}'), is_grant => TRUE, privilege => 'resolve', start_date => NULL, end_date => NULL); DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL( acl => UPPER('{your_user_name}') || '_Connect_Access.xml', host => '*', lower_port => NULL, upper_port => NULL); END;

PostgreSQL을 사용하여 데이터베이스 사용자 생성

PostgreSQL 소스 데이터베이스에서 데이터베이스 사용자를 생성하려면 다음 스크립트를 사용합니다.

CREATE USER "{your_user_name}" WITH LOGIN PASSWORD '{your_password}'; GRANT pg_read_all_settings TO "{your_user_name}"; -- For PostgreSQL versions 10 and higher, add the following statement. GRANT EXECUTE ON FUNCTION pg_ls_waldir() TO "{your_user_name}";

Microsoft SQL Server를 사용하여 데이터베이스 사용자 생성

Microsoft SQL Server 소스 데이터베이스에서 데이터베이스 사용자를 생성하려면 다음 스크립트를 사용합니다.

USE master GO IF NOT EXISTS (SELECT * FROM sys.sql_logins WHERE name = N'{your_user_name}') CREATE LOGIN [{your_user_name}] WITH PASSWORD=N'{your_password}', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO GRANT VIEW SERVER STATE TO [{your_user_name}] GRANT VIEW ANY DEFINITION TO [{your_user_name}] GRANT VIEW ANY DATABASE TO [{your_user_name}] IF LEFT(CONVERT(SYSNAME,SERVERPROPERTY('ProductVersion')), CHARINDEX('.', CONVERT(SYSNAME,SERVERPROPERTY('ProductVersion')), 0)-1) >= 12 EXECUTE('GRANT CONNECT ANY DATABASE TO [{your_user_name}]') DECLARE @dbname VARCHAR(100) DECLARE @statement NVARCHAR(max) DECLARE db_cursor CURSOR LOCAL FAST_FORWARD FOR SELECT name FROM MASTER.sys.databases WHERE state = 0 AND is_read_only = 0 OPEN db_cursor FETCH NEXT FROM db_cursor INTO @dbname WHILE @@FETCH_STATUS = 0 BEGIN SELECT @statement = 'USE '+ quotename(@dbname) +';'+ ' IF NOT EXISTS (SELECT * FROM sys.syslogins WHERE name = ''{your_user_name}'') OR NOT EXISTS (SELECT * FROM sys.sysusers WHERE name = ''{your_user_name}'') CREATE USER [{your_user_name}] FOR LOGIN [{your_user_name}]; EXECUTE sp_addrolemember N''db_datareader'', [{your_user_name}]' BEGIN TRY EXECUTE sp_executesql @statement END TRY BEGIN CATCH DECLARE @err NVARCHAR(255) SET @err = error_message() PRINT @dbname PRINT @err END CATCH FETCH NEXT FROM db_cursor INTO @dbname END CLOSE db_cursor DEALLOCATE db_cursor USE msdb GO GRANT EXECUTE ON dbo.agent_datetime TO [{your_user_name}]

데이터베이스 사용자 삭제

모든 데이터 수집 작업을 완료한 후에는 DMS 데이터 수집기에 대해 생성한 데이터베이스 사용자를 삭제할 수 있습니다. 다음 스크립트를 사용하여 데이터베이스에서 최소 권한을 가진 사용자를 삭제할 수 있습니다.

MySQL 데이터베이스에서 사용자를 삭제하려면 다음 스크립트를 실행합니다.

DROP USER IF EXISTS "{your_user_name}";

Oracle 데이터베이스에서 사용자를 삭제하려면 다음 스크립트를 실행합니다.

DECLARE -- Input parameters, please set correct value cnst$user_name CONSTANT VARCHAR2(255) DEFAULT '{your_user_name}'; -- System variables, please, don't change var$is_exists INTEGER DEFAULT 0; BEGIN SELECT COUNT(hal.acl) INTO var$is_exists FROM dba_host_acls hal WHERE hal.acl LIKE '%' || UPPER(cnst$user_name) || '_Connect_Access.xml'; IF var$is_exists > 0 THEN DBMS_NETWORK_ACL_ADMIN.DROP_ACL( acl => UPPER(cnst$user_name) || '_Connect_Access.xml'); END IF; SELECT COUNT(usr.username) INTO var$is_exists FROM all_users usr WHERE usr.username = UPPER(cnst$user_name); IF var$is_exists > 0 THEN EXECUTE IMMEDIATE 'DROP USER ' || cnst$user_name || ' CASCADE'; END IF; END;

PostgreSQL 데이터베이스에서 사용자를 삭제하려면 다음 스크립트를 실행합니다.

DROP USER IF EXISTS "{your_user_name}";

SQL Server 데이터베이스에서 사용자를 삭제하려면 다음 스크립트를 실행합니다.

USE msdb GO REVOKE EXECUTE ON dbo.agent_datetime TO [{your_user_name}] USE master GO DECLARE @dbname VARCHAR(100) DECLARE @statement NVARCHAR(max) DECLARE db_cursor CURSOR LOCAL FAST_FORWARD FOR SELECT name FROM MASTER.sys.databases WHERE state = 0 AND is_read_only = 0 OPEN db_cursor FETCH NEXT FROM db_cursor INTO @dbname WHILE @@FETCH_STATUS = 0 BEGIN SELECT @statement = 'USE '+ quotename(@dbname) +';'+ ' EXECUTE sp_droprolemember N''db_datareader'', [{your_user_name}] IF EXISTS (SELECT * FROM sys.syslogins WHERE name = ''{your_user_name}'') OR EXISTS (SELECT * FROM sys.sysusers WHERE name = ''{your_user_name}'') DROP USER [{your_user_name}];' BEGIN TRY EXECUTE sp_executesql @statement END TRY BEGIN CATCH DECLARE @err NVARCHAR(255) SET @err = error_message() PRINT @dbname PRINT @err END CATCH FETCH NEXT FROM db_cursor INTO @dbname END CLOSE db_cursor DEALLOCATE db_cursor GO IF EXISTS (SELECT * FROM sys.sql_logins WHERE name = N'{your_user_name}') DROP LOGIN [{your_user_name}] -- Use for SQL login GO
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.