

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Datenbankbenutzer für AWS DMS Fleet Advisor erstellen
<a name="fa-database-users"></a>

**Wichtig**  
Hinweis zum Ende des Supports: Am 20. Mai 2026 AWS wird der Support für AWS Database Migration Service Fleet Advisor eingestellt. Nach dem 20. Mai 2026 können Sie nicht mehr auf die AWS DMS Fleet Advisor-Konsole oder AWS DMS die Fleet Advisor-Ressourcen zugreifen. Weitere Informationen finden Sie unter [Ende des Supports für AWS DMS Fleet Advisor](https://docs.aws.amazon.com/dms/latest/userguide/dms_fleet.advisor-end-of-support.html).

In diesem Abschnitt wird beschrieben, wie Sie Datenbankbenutzer mit den Mindestberechtigungen, die für den DMS-Datenkollektor erforderlich sind, erstellen.

**Topics**
+ [Verwenden eines Datenbankbenutzers mit AWS DMS Fleet Advisor](#fa-database-users-using)
+ [Erstellen eines Datenbankbenutzers mit MySQL](#fa-database-users-mysql)
+ [Erstellen einer VPC zur Verwendung mit Oracle](#fa-database-users-oracle)
+ [Erstellen eines Datenbankbenutzers mit PostgreSQL](#fa-database-users-postgresql)
+ [Erstellen eines Datenbankbenutzers mit Microsoft SQL Server](#fa-database-users-sql-server)
+ [Löschen von Datenbankbenutzern](#fa-database-users-drop)

## Verwenden eines Datenbankbenutzers mit AWS DMS Fleet Advisor
<a name="fa-database-users-using"></a>

Sie können einen anderen Datenbankbenutzer als `root` mit dem DMS-Datenkollektor verwenden. Geben Sie den Benutzernamen und das Passwort an, nachdem Sie die Datenbank zum Inventar hinzugefügt haben, jedoch bevor Sie Ihren Datenkollektor ausführen. Weitere Informationen zum Hinzufügen von Datenbanken zum Inventar finden Sie unter [Verwaltung überwachter Objekte in AWS DMS](fa-managing-objects.md). 

Nachdem Sie die Verwendung des DMS-Datenkollektors beendet haben, können Sie die von Ihnen erstellten Datenbankbenutzer löschen. Weitere Informationen finden Sie unter [Löschen von Datenbankbenutzern](#fa-database-users-drop).

**Wichtig**  
Ersetzen Sie es in den folgenden Beispielen *\$1your\$1user\$1name\$1* durch den Namen des Datenbankbenutzers, den Sie für Ihre Datenbank erstellt haben. Ersetzen Sie es dann *\$1your\$1password\$1* durch ein sicheres Passwort.

## Erstellen eines Datenbankbenutzers mit MySQL
<a name="fa-database-users-mysql"></a>

Verwenden Sie das folgende Skript, um einen Datenbankbenutzer in einer MySQL-Quelldatenbank zu erstellen. Stellen Sie sicher, dass Sie eine Version der `GRANT`-Anweisung beibehalten, die von der Version Ihrer MySQL-Datenbank abhängt.

```
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;
```

## Erstellen einer VPC zur Verwendung mit Oracle
<a name="fa-database-users-oracle"></a>

Verwenden Sie das folgende Skript, um einen Datenbankbenutzer in einer Oracle-Quelldatenbank zu erstellen.

Um dieses SQL-Skript auszuführen, stellen Sie mithilfe von `SYSDBA`-Berechtigungen eine Verbindung zu Ihrer Oracle-Datenbank her. Nachdem Sie dieses SQL-Skript ausgeführt haben, stellen Sie mit den Anmeldeinformationen des Benutzers, den Sie mit diesem Skript erstellt haben, eine Verbindung zu Ihrer Datenbank her. Verwenden Sie außerdem die Anmeldeinformationen dieses Benutzers, um den DMS-Datenkollektor auszuführen.

Das folgende Skript fügt das `C##`-Präfix dem Namen des Benutzers für Oracle-Multitenant-Container-Datenbanken (CDB) hinzu.

```
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;
```

## Erstellen eines Datenbankbenutzers mit PostgreSQL
<a name="fa-database-users-postgresql"></a>

Verwenden Sie das folgende Skript, um einen Datenbankbenutzer in einer PostgreSQL-Quelldatenbank zu erstellen.

```
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}";
```

## Erstellen eines Datenbankbenutzers mit Microsoft SQL Server
<a name="fa-database-users-sql-server"></a>

Verwenden Sie das folgende Skript, um einen Datenbankbenutzer in einer Microsoft-SQL-Server-Quelldatenbank zu erstellen.

```
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}]
```

## Löschen von Datenbankbenutzern
<a name="fa-database-users-drop"></a>

Nachdem Sie alle Datenerfassungsaufgaben abgeschlossen haben, können Sie die Datenbankbenutzer löschen, die Sie für den DMS-Datenkollektor erstellt haben. Sie können die folgenden Skripts verwenden, um die Benutzer mit Mindestberechtigungen aus Ihren Datenbanken zu löschen.

Führen Sie das folgende Skript aus, um den Benutzer aus Ihrer MySQL-Datenbank zu löschen.

```
DROP USER IF EXISTS "{your_user_name}";
```

Führen Sie das folgende Skript aus, um den Benutzer aus Ihrer Oracle-Datenbank zu löschen.

```
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;
```

Führen Sie das folgende Skript aus, um den Benutzer aus Ihrer PostgreSQL-Datenbank zu löschen.

```
DROP USER IF EXISTS "{your_user_name}";
```

Führen Sie das folgende Skript aus, um den Benutzer aus Ihrer SQLServer-Datenbank zu löschen.

```
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
```