Come posso duplicare o clonare le mie autorizzazioni di accesso utente di Amazon RDS per SQL Server?
Desidero clonare le mie autorizzazioni di accesso utente di Amazon Relational Database Service (Amazon RDS) per SQL Server.
Risoluzione
Crea procedure memorizzate
Per duplicare RDS per SQL Server, devi prima creare procedure archiviate nell'ambiente in cui desideri duplicare l'utente.
Per creare le procedure archiviate, esegui lo script MSSQL_RDS_Clone_Login. Per ulteriori informazioni, consulta lo script MSSQL_RDS_Clone_Login sul sito web GitHub. Puoi creare le procedure archiviate in qualsiasi database utente che non si trova all'interno del database di sistema RDS per SQL Server.
Lo script MSSQL_RDS_Clone_Login non può apportare modifiche ai nuovi accessi a meno che l'utente che esegue lo script non abbia accesso per concedere tali autorizzazioni. Se l'utente non ha accesso per concedere le autorizzazioni, le autorizzazioni non vengono visualizzate nello script. Se non disponi delle autorizzazioni di concessione e provi ad aggiungere manualmente le autorizzazioni allo script, lo script ha esito negativo.
Lo script MSSQL_RDS_Clone_Login crea tre procedure archiviate:
- DuplicateLogin: questa procedura duplica l'accesso e l'utente del database dalle autorizzazioni di accesso di ogni database da cui copi.
- GrantUserRoleMembership: questa procedura duplica le autorizzazioni e i ruoli dell'utente del database per il nuovo utente.
- DuplicateRDS: questa procedura consolida i risultati delle procedure archiviate DuplicateLogin e GrantUserRoleMembership.
Esegui le procedure archiviate
Per eseguire le procedure archiviate, completa i seguenti passaggi:
-
Apri una nuova finestra in Transact-SQL (TSQL).
-
Premi CTRL+T per assicurarti che i risultati siano in formato testo.
-
Esegui questi script.
Accesso SQL:USE [DB_NAME] EXEC DuplicateRDS @NewLogin=[duplicate_login_name] ,@NewLoginPwd = password ,@LoginToDuplicate = primary_login ,@WindowsLogin = F ,@DatabaseName=NULLNota: sostituisci DB_NAME con il nome del database utenti, duplicate_login_name con il tuo nome di accesso e password con la tua password.
Accesso Windows:USE [DB_NAME] EXEC DuplicateRDS @NewLogin=[domain\duplicate_login_name] ,@LoginToDuplicate = primary_login ,@NewLoginPwd = NULL ,@WindowsLogin = T ,@DatabaseName=NULLNota: sostituisci DB_NAME con il nome del database utenti, domain con il nome del tuo dominio e duplicate_login_name con il tuo nome di accesso.
-
Dopo la generazione dello script, copialo dalla scheda Risultati ed eseguilo in una nuova finestra di query.
Nota: dopo l'esecuzione dello script, l'accesso a SQL Server viene generato con autorizzazioni a livello di server e database simili a quelle dell'accesso principale. -
L'accesso generato esclude le autorizzazioni SSISDB di Microsoft SQL Server Integration Services (SSIS) per ssis_admin e ssis_logreader. Se ti servono queste autorizzazioni, esegui il comando:
ALTER ROLE [ssis_admin] ADD MEMBER [mydomain\user_name] ALTER ROLE [ssis_logreader] ADD MEMBER [mydomain\user_name] GONota: sostituisci mydomain con il nome del tuo dominio e user_name con il tuo nome utente. Potresti ricevere un output di script disordinato a causa delle tabelle temporanee utilizzate dalla procedura archiviata. In tal caso, rilascia e ricrea la procedura archiviata.
-
Per verificare la presenza di utenti orfani, esegui questo script:
Use [DB_NAME] ; GO exec sp_change_users_login @Action='Report' ; GONota: sostituisci DB_NAME con il nome del database utenti.
-
Per eliminare gli utenti orfani, esegui questo script:
Use [DB_NAME] ; GO exec sp_revokedbaccess 'username' GONota: sostituisci DB_NAME con il nome del database utenti e username con il tuo nome utente.
-
Se non desideri conservare le procedure archiviate dopo aver duplicato l'accesso, esegui questo script:
USE \[DB\_NAME\] ; GO DROP PROCEDURE \[dbo\].\[DuplicateRDS\] GO DROP PROCEDURE \[dbo\].\[DuplicateLogin\] GO DROP PROCEDURE \[dbo\].\[GrantUserRoleMembership\] GONota: sostituisci DB_NAME con il nome del database utenti.
- Argomenti
- Database
- Lingua
- Italiano
