Använda hanterad identitet för SQL Database-autentisering i Azure HDInsight
HDInsight har lagt till alternativet Hanterad identitet för att autentisera SQL-databaser i dess klustererbjudanden och tillhandahålla en säkrare autentiseringsmekanism.
Den här artikeln beskriver processen med att använda alternativet Hanterad identitet (MSI) för SQL Database-autentisering när du skapar ett HDInsight-kluster.
Alternativet Hanterad identitet (MI) är tillgängligt för följande databaser:
Databaser | Värd för (HoBo) DB | Byo-databas (Bring Your Own) |
---|---|---|
Ambari | ✅ | ✅ |
Hive | ✅ | ✅ |
Oozie | ✅ | ✅ |
Ranger (ESP) | ❌ | ❌ |
Kommentar
- Hanterad identitet (MI) är för närvarande endast tillgänglig i offentliga regioner.
- MI-alternativet är inte aktiverat som standard. Om du vill aktivera den skickar du ett supportärende med din prenumerations- och regioninformation.
Viktigt!
- Vi rekommenderar att du inte uppdaterar den hanterade identiteten efter klustrets återskapande eftersom den kan störa klusteråtgärden.
- När du återskapar en MSI med samma namn måste användarna återskapa den inneslutna användaren och omtilldela roller, eftersom den nya MSI:n har olika objekt- och klient-ID:n även om namnet förblir oförändrat.
Steg för att använda hanterad identitet när klustret skapas i Azure Portal
När klustret skapas går du till avsnittet Lagring och väljer SQL-databasen för Ambari/Hive/Oozie. Välj Hanterad identitet som autentiseringsmetod.
Välj den hanterade identiteten för att autentisera med SQL Database.
Skapa en innesluten användare med den hanterade identiteten i motsvarande SQL-databas.
Följ de här stegen i Frågeredigeraren för Azure SQL Database för att skapa en databasanvändare och ge den läs- och skrivbehörighet. Utför de här stegen för varje SQL Database som du ska använda för olika tjänster som Ambari, Hive eller Oozie.
Kommentar
Användarnamnet måste innehålla det ursprungliga MSI-namnet som utökats med ett användardefinierat suffix. Som bästa praxis kan suffixet innehålla en första del av dess objekt-ID. Objekt-ID för hanterad identitet kan hämtas från portalen på sidan för den hanterade identitetsportalen.
Till exempel:
- MSI-namn: contosoMSI
- Objekt-ID:
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
- user_name kan vara
contosoMSI-2ba6c
CREATE USER {user_name} FROM EXTERNAL PROVIDER WITH OBJECT_ID={object id of cluster managed identity}; ALTER ROLE db_datareader ADD MEMBER {user_name}; ALTER ROLE db_ddladmin ADD MEMBER {user_name}; ALTER ROLE db_datawriter ADD MEMBER {user_name};
Kommentar
Om rollerna
db_executor
,db_view_def
ochdb_view_state
redan har definierats i databasen, behöver du inte fortsätta med det efterföljande steget.CREATE ROLE db_executor; GRANT EXECUTE TO db_executor; ALTER ROLE db_executor ADD MEMBER {user_name}; CREATE ROLE db_view_def; GRANT VIEW DEFINITION TO db_view_def; ALTER ROLE db_view_def ADD MEMBER {user_name}; CREATE ROLE db_view_db_state; GRANT VIEW DATABASE STATE TO db_view_db_state; ALTER ROLE db_view_def ADD MEMBER {user_name};
När du har angett nödvändig information fortsätter du med att skapa kluster på portalen.