Poświadczenia używane do uzyskiwania dostępu do biblioteki klienta elastycznej bazy danych
Dotyczy: Azure SQL Database
Biblioteka kliencka elastic database używa trzech różnych rodzajów poświadczeń w celu uzyskania dostępu do menedżera map fragmentów. W zależności od potrzeb użyj poświadczeń z najniższym poziomem dostępu.
- Poświadczenia zarządzania: do tworzenia lub manipulowania menedżerem mapy fragmentów. (Zobacz słownik).
- Poświadczenia dostępu: aby uzyskać dostęp do istniejącego menedżera mapy fragmentów w celu uzyskania informacji o fragmentach.
- Poświadczenia połączenia: aby nawiązać połączenie z fragmentami.
Zobacz też Zarządzanie bazami danych i identyfikatorami logowania w usłudze Azure SQL Database.
Informacje o poświadczeniach zarządzania
Poświadczenia zarządzania służą do tworzenia obiektu ShardMapManager (Java, .NET) dla aplikacji, które manipulują mapami fragmentów. (Na przykład zobacz Dodawanie fragmentu przy użyciu narzędzi elastycznej bazy danych i routingu zależnego od danych). Użytkownik biblioteki klienta elastycznej skalowania tworzy użytkowników SQL i identyfikatory logowania SQL i upewnia się, że każdy z nich ma uprawnienia do odczytu/zapisu w globalnej bazie danych mapy fragmentów i wszystkich baz danych fragmentów. Te poświadczenia są używane do obsługi globalnej mapy fragmentów i lokalnych map fragmentów podczas wykonywania zmian w mapie fragmentów. Na przykład użyj poświadczeń zarządzania, aby utworzyć obiekt menedżera map fragmentów (przy użyciu polecenia GetSqlShardMapManager (Java, .NET):
// Obtain a shard map manager.
ShardMapManager shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager(smmAdminConnectionString,ShardMapManagerLoadPolicy.Lazy);
Zmienna smmAdminConnectionString to parametry połączenia, która zawiera poświadczenia zarządzania. Identyfikator użytkownika i hasło zapewniają dostęp do odczytu/zapisu zarówno do bazy danych mapy fragmentów, jak i poszczególnych fragmentów. Parametry połączenia zarządzania zawiera również nazwę serwera i nazwę bazy danych, aby zidentyfikować globalną bazę danych mapy fragmentów. Oto typowe parametry połączenia w tym celu:
"Server=<yourserver>.database.windows.net;Database=<yourdatabase>;User ID=<yourmgmtusername>;Password=<yourmgmtpassword>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"
Nie używaj wartości w postaci "username@server" — zamiast tego użyj wartości "username". Jest to spowodowane tym, że poświadczenia muszą działać zarówno względem bazy danych menedżera map fragmentów, jak i poszczególnych fragmentów, które mogą znajdować się na różnych serwerach.
Poświadczenia dostępu
Podczas tworzenia menedżera map fragmentów w aplikacji, która nie administruje mapami fragmentów, użyj poświadczeń, które mają uprawnienia tylko do odczytu na globalnej mapie fragmentów. Informacje pobierane z globalnej mapy fragmentów pod tymi poświadczeniami są używane do routingu zależnego od danych i wypełniania pamięci podręcznej mapy fragmentów na kliencie. Poświadczenia są udostępniane za pomocą tego samego wzorca wywołania do polecenia GetSqlShardMapManager:
// Obtain shard map manager.
ShardMapManager shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager(smmReadOnlyConnectionString, ShardMapManagerLoadPolicy.Lazy);
Zwróć uwagę na użycie funkcji smmReadOnlyConnectionString , aby odzwierciedlić użycie różnych poświadczeń dla tego dostępu w imieniu użytkowników niebędących administratorami : te poświadczenia nie powinny zapewniać uprawnień do zapisu na globalnej mapie fragmentów.
Poświadczenia połączenia
Dodatkowe poświadczenia są wymagane w przypadku używania metody OpenConnectionForKey (Java, .NET) w celu uzyskania dostępu do fragmentu skojarzonego z kluczem fragmentowania. Te poświadczenia muszą zapewnić uprawnienia dostępu tylko do odczytu do lokalnych tabel map fragmentów znajdujących się na fragmentach. Jest to konieczne do przeprowadzenia weryfikacji połączenia na potrzeby routingu zależnego od danych od fragmentu. Ten fragment kodu umożliwia dostęp do danych w kontekście routingu zależnego od danych:
using (SqlConnection conn = rangeMap.OpenConnectionForKey<int>(targetWarehouse, smmUserConnectionString, ConnectionOptions.Validate))
W tym przykładzie element smmUserConnectionString przechowuje parametry połączenia dla poświadczeń użytkownika. W przypadku usługi Azure SQL Database poniżej przedstawiono typowe parametry połączenia dla poświadczeń użytkownika:
"User ID=<yourusername>; Password=<youruserpassword>; Trusted_Connection=False; Encrypt=True; Connection Timeout=30;"
Podobnie jak w przypadku poświadczeń administratora, nie używaj wartości w postaci "username@server". Zamiast tego wystarczy użyć nazwy użytkownika. Należy również pamiętać, że parametry połączenia nie zawiera nazwy serwera ani nazwy bazy danych. Jest to spowodowane tym, że wywołanie OpenConnectionForKey automatycznie kieruje połączenie z poprawnym fragmentem na podstawie klucza. W związku z tym nie podano nazwy bazy danych i nazwy serwera.
Zobacz też
Zarządzanie bazami danych i logowaniami w usłudze Azure SQL Database
Zabezpieczanie bazy danych SQL
Zadania elastycznej bazy danych
Powiązana zawartość
Jeszcze nie korzystasz z narzędzi elastycznych baz danych? Zapoznaj się z naszym przewodnikiem Wprowadzenie. W przypadku pytań skontaktuj się z nami na stronie pytań i odpowiedzi dotyczących usługi SQL Database oraz w przypadku żądań funkcji, dodaj nowe pomysły lub zagłosuj na istniejące pomysły na forum opinii usługi SQL Database.