Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat pengguna database untuk AWS DMS Fleet Advisor
Bagian ini menjelaskan cara membuat pengguna untuk basis data sumber Anda dengan izin minimum yang diperlukan untuk pengumpul DMS data.
Bagian ini berisi topik berikut:
Menggunakan pengguna database dengan AWS DMS Fleet Advisor
Anda dapat menggunakan pengguna database selain root
dengan pengumpul DMS data. Tentukan nama pengguna dan kata sandi setelah menambahkan database ke inventaris, tetapi sebelum Anda menjalankan pengumpul data Anda. Untuk informasi selengkapnya tentang menambahkan database ke inventaris, lihatMengelola objek yang dipantau di AWS DMS.
Setelah Anda selesai menggunakan pengumpul DMS data, Anda dapat menghapus pengguna database yang Anda buat. Untuk informasi selengkapnya, lihat Menghapus pengguna basis data.
penting
Dalam contoh berikut, ganti {your_user_name}
dengan nama pengguna database yang Anda buat untuk database Anda. Kemudian, ganti {your_password}
dengan kata sandi yang aman.
Membuat pengguna database dengan My SQL
Untuk membuat pengguna database dalam database SQL sumber Saya, gunakan skrip berikut. Pastikan Anda menyimpan satu versi GRANT
pernyataan yang bergantung pada versi SQL database Saya.
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;
Membuat pengguna database dengan Oracle
Untuk membuat pengguna database dalam database sumber Oracle, gunakan skrip berikut.
Untuk menjalankan SQL skrip ini, sambungkan ke database Oracle Anda menggunakan SYSDBA
hak istimewa. Setelah Anda menjalankan SQL skrip ini, sambungkan ke database Anda menggunakan kredensi pengguna yang Anda buat dengan skrip ini. Juga, gunakan kredensi pengguna ini untuk menjalankan pengumpul DMS data.
Script berikut menambahkan C##
awalan untuk nama pengguna untuk Oracle multitenant database container (). CDB
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;
Membuat pengguna database dengan Postgre SQL
Untuk membuat pengguna database dalam database SQL sumber Postgre, gunakan skrip berikut.
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}
";
Membuat pengguna database dengan Microsoft SQL Server
Untuk membuat pengguna database dalam database sumber Microsoft SQL Server, gunakan skrip berikut.
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}
]
Menghapus pengguna basis data
Setelah Anda menyelesaikan semua tugas pengumpulan data, Anda dapat menghapus pengguna database yang Anda buat untuk pengumpul DMS data. Anda dapat menggunakan skrip berikut untuk menghapus pengguna dengan izin minimum dari database Anda.
Untuk menghapus pengguna dari SQL database Saya, jalankan skrip berikut.
DROP USER IF EXISTS "
{your_user_name}
";
Untuk menghapus pengguna dari database Oracle Anda, jalankan skrip berikut.
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;
Untuk menghapus pengguna dari SQL database Postgre Anda, jalankan skrip berikut.
DROP USER IF EXISTS "
{your_user_name}
";
Untuk menghapus pengguna dari database SQL Server Anda, jalankan skrip berikut.
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