Używanie reguł i punktów końcowych usługi sieci wirtualnej dla serwerów w przypadku usługi Azure SQL Database
Dotyczy: Azure SQL Database Azure Synapse Analytics
Reguły sieci wirtualnej to funkcja zabezpieczeń zapory, która kontroluje, czy serwer baz danych i elastycznych pul w usłudze Azure SQL Database , czy dla dedykowanych baz danych puli SQL (dawniej SQL DW) w usłudze Azure Synapse Analytics akceptuje komunikaty wysyłane z określonych podsieci w sieciach wirtualnych. W tym artykule wyjaśniono, dlaczego reguły sieci wirtualnej są czasami najlepszą opcją bezpiecznego zezwalania na komunikację z bazą danych w usługach SQL Database i Azure Synapse Analytics.
Uwaga
Ten artykuł dotyczy zarówno usług SQL Database, jak i Azure Synapse Analytics. Dla uproszczenia termin baza danych odnosi się do obu baz danych w usługach SQL Database i Azure Synapse Analytics. Podobnie wszystkie odwołania do serwera odwołują się do serwera logicznego, który hostuje usługi SQL Database i Azure Synapse Analytics.
Aby utworzyć regułę sieci wirtualnej, musisz najpierw mieć punkt końcowy usługi sieci wirtualnej, aby reguła odwołyła się do niej.
Uwaga
Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).
Tworzenie reguły sieci wirtualnej
Jeśli chcesz utworzyć tylko regułę sieci wirtualnej, możesz przejść do kroków i wyjaśnień w dalszej części tego artykułu.
Szczegółowe informacje o regułach sieci wirtualnej
W tej sekcji opisano kilka szczegółów dotyczących reguł sieci wirtualnej.
Tylko jeden region geograficzny
Każdy punkt końcowy usługi sieci wirtualnej ma zastosowanie tylko do jednego regionu świadczenia usługi Platformy Azure. Punkt końcowy nie umożliwia innym regionom akceptowania komunikacji z podsieci.
Każda reguła sieci wirtualnej jest ograniczona do regionu, do którego ma zastosowanie jego podstawowy punkt końcowy.
Poziom serwera, a nie poziom bazy danych
Każda reguła sieci wirtualnej ma zastosowanie do całego serwera, a nie tylko do jednej konkretnej bazy danych na serwerze. Innymi słowy reguły sieci wirtualnej mają zastosowanie na poziomie serwera, a nie na poziomie bazy danych.
Z kolei reguły adresów IP mogą być stosowane na każdym poziomie.
Role administracji zabezpieczeń
Istnieje separacja ról zabezpieczeń w administrowaniu punktami końcowymi usługi sieci wirtualnej. Akcja jest wymagana z każdej z następujących ról:
- Administrator sieci (rola Współautor sieci): włącz punkt końcowy.
- Administrator bazy danych (rola współautora programu SQL Server): zaktualizuj listę kontroli dostępu (ACL), aby dodać daną podsieć do serwera.
Alternatywna kontrola dostępu oparta na rolach platformy Azure
Role administratora sieci i administratora bazy danych mają więcej możliwości niż są potrzebne do zarządzania regułami sieci wirtualnej. Wymagany jest tylko podzbiór ich możliwości.
Istnieje możliwość używania kontroli dostępu opartej na rolach (RBAC) na platformie Azure w celu utworzenia pojedynczej roli niestandardowej, która ma tylko niezbędny podzbiór możliwości. Rolę niestandardową można użyć zamiast z udziałem administratora sieci lub administratora bazy danych. Obszar powierzchni ujawnienia zabezpieczeń jest niższy, jeśli dodasz użytkownika do roli niestandardowej, a użytkownik nie zostanie dodany do dwóch pozostałych głównych ról administratora.
Uwaga
W niektórych przypadkach baza danych w usłudze SQL Database i podsieci sieci wirtualnej znajdują się w różnych subskrypcjach. W takich przypadkach należy zapewnić następujące konfiguracje:
- Obie subskrypcje muszą znajdować się w tej samej dzierżawie firmy Microsoft Entra.
- Użytkownik ma wymagane uprawnienia do inicjowania operacji, takich jak włączanie punktów końcowych usługi i dodawanie podsieci sieci wirtualnej do danego serwera.
- Obie subskrypcje muszą mieć zarejestrowanego dostawcę Microsoft.Sql.
Ograniczenia
W przypadku usługi SQL Database funkcja reguł sieci wirtualnej ma następujące ograniczenia:
- W zaporze bazy danych w usłudze SQL Database każda reguła sieci wirtualnej odwołuje się do podsieci. Wszystkie te podsieci, do których odwołuje się odwołanie, muszą być hostowane w tym samym regionie geograficznym, który hostuje bazę danych.
- Każdy serwer może mieć maksymalnie 128 wpisów listy ACL dla dowolnej sieci wirtualnej.
- Reguły sieci wirtualnej mają zastosowanie tylko do sieci wirtualnych usługi Azure Resource Manager, a nie do klasycznych sieci modelu wdrażania.
- Włączenie punktów końcowych usługi sieci wirtualnej do usługi SQL Database umożliwia również punkty końcowe dla usług Azure Database for MySQL i Azure Database for PostgreSQL. Gdy punkty końcowe mają wartość WŁĄCZONE, próby nawiązania połączenia z punktów końcowych z wystąpieniami usługi Azure Database for MySQL lub Azure Database for PostgreSQL mogą zakończyć się niepowodzeniem.
- Podstawową przyczyną jest to, że usługi Azure Database for MySQL i Azure Database for PostgreSQL prawdopodobnie nie mają skonfigurowanej reguły sieci wirtualnej. Należy skonfigurować regułę sieci wirtualnej dla usług Azure Database for MySQL i Azure Database for PostgreSQL.
- Aby zdefiniować reguły zapory sieci wirtualnej na serwerze logicznym SQL, który jest już skonfigurowany z prywatnymi punktami końcowymi, ustaw opcję Odmów dostępu do sieci publicznej na wartość Nie.
- W zaporze zakresy adresów IP mają zastosowanie do następujących elementów sieci, ale reguły sieci wirtualnej nie:
- Wirtualna sieć prywatna typu lokacja-lokacja (S2S) (VPN)
- Lokalnie za pośrednictwem usługi Azure ExpressRoute
Zagadnienia dotyczące korzystania z punktów końcowych usługi
Jeśli używasz punktów końcowych usługi dla usługi SQL Database, zapoznaj się z następującymi zagadnieniami:
- Wymagany jest ruch wychodzący do publicznych adresów IP usługi Azure SQL Database. Sieciowe grupy zabezpieczeń muszą być otwarte dla adresów IP usługi SQL Database, aby umożliwić łączność. Można to zrobić przy użyciu tagów usługi sieciowej grupy zabezpieczeń dla usługi SQL Database.
ExpressRoute
Jeśli używasz usługi ExpressRoute ze środowiska lokalnego, w przypadku publicznej komunikacji równorzędnej lub komunikacji równorzędnej firmy Microsoft należy zidentyfikować używane adresy IP translatora adresów sieciowych. W przypadku publicznej komunikacji równorzędnej każdy obwód usługi ExpressRoute domyślnie używa dwóch adresów IP translatora adresów sieciowych stosowanych do ruchu w ramach usługi platformy Azure, gdy ruch trafia do sieci szkieletowej platformy Microsoft Azure. W przypadku komunikacji równorzędnej firmy Microsoft adresy IP translatora adresów sieciowych, które są używane, są dostarczane przez klienta lub dostawcę usług. Aby umożliwić dostęp do zasobów usługi, musisz zezwolić na te publiczne adresy IP w ustawieniu zapory adresu IP zasobu. Aby znaleźć adresy IP obwodów usługi ExpressRoute publicznej komunikacji równorzędnej, otwórz bilet pomocy technicznej przy użyciu usługi ExpressRoute w witrynie Azure Portal. Aby dowiedzieć się więcej na temat translatora adresów sieciowych dla publicznej komunikacji równorzędnej usługi ExpressRoute i komunikacji równorzędnej firmy Microsoft, zobacz Wymagania dotyczące translatora adresów sieciowych dla publicznej komunikacji równorzędnej platformy Azure.
Aby umożliwić komunikację z obwodu do usługi SQL Database, należy utworzyć reguły sieci IP dla publicznych adresów IP translatora adresów sieciowych.
Wpływ używania punktów końcowych usługi sieci wirtualnej w usłudze Azure Storage
Usługa Azure Storage zaimplementowała tę samą funkcję, która umożliwia ograniczenie łączności z kontem usługi Azure Storage. Jeśli zdecydujesz się używać tej funkcji z kontem usługi Azure Storage używanym przez usługę SQL Database, możesz napotkać problemy. Następnie znajduje się lista i omówienie funkcji usługi SQL Database i Azure Synapse Analytics, których dotyczy ten problem.
Instrukcja PolyBase i COPY usługi Azure Synapse Analytics
Program PolyBase i instrukcja COPY są często używane do ładowania danych do usługi Azure Synapse Analytics z kont usługi Azure Storage w celu pozyskiwania danych o wysokiej przepływności. Jeśli konto usługi Azure Storage, z którego są ładowane dane, ogranicza dostęp tylko do zestawu podsieci sieci wirtualnej, łączność podczas korzystania z technologii PolyBase i instrukcji COPY na koncie magazynu zostanie przerwana. Aby włączyć scenariusze importowania i eksportowania przy użyciu funkcji COPY i PolyBase z usługą Azure Synapse Analytics łączącą się z usługą Azure Storage zabezpieczoną siecią wirtualną, wykonaj kroki opisane w tej sekcji.
Wymagania wstępne
- Zainstaluj program Azure PowerShell. Aby uzyskać więcej informacji, zobacz Instalowanie modułu Azure Az PowerShell.
- Jeśli masz konto ogólnego przeznaczenia w wersji 1 lub Azure Blob Storage, musisz najpierw przeprowadzić uaktualnienie do warstwy Ogólnego przeznaczenia w wersji 2, wykonując kroki opisane w temacie Uaktualnianie do konta magazynu ogólnego przeznaczenia w wersji 2.
- Aby uzyskać dostęp do tego konta magazynu, musisz mieć włączoną opcję Zezwalaj na dostęp do zaufanego usługi firmy Microsoft w menu ustawień zapory i sieci wirtualnych usługi Azure Storage. Włączenie tej konfiguracji umożliwi programowi PolyBase i instrukcji COPY nawiązanie połączenia z kontem magazynu przy użyciu silnego uwierzytelniania, w którym ruch sieciowy pozostaje w sieci szkieletowej platformy Azure. Aby uzyskać więcej informacji, zobacz ten przewodnik.
Ważne
Moduł Azure Resource Manager programu PowerShell jest nadal obsługiwany przez usługę Azure SQL Database, ale cały przyszły rozwój jest przeznaczony dla tego modułu Az.Sql
. Moduł AzureRM będzie nadal otrzymywać poprawki błędów do co najmniej grudnia 2020 r. Argumenty poleceń w module Az i modułach AzureRm są zasadniczo identyczne. Aby uzyskać więcej informacji na temat ich zgodności, zobacz Wprowadzenie do nowego modułu Az programu Azure PowerShell.
Kroki
Jeśli masz autonomiczną dedykowaną pulę SQL (dawniej SQL DW), zarejestruj serwer SQL przy użyciu identyfikatora Entra firmy Microsoft przy użyciu programu PowerShell:
Connect-AzAccount Select-AzSubscription -SubscriptionId <subscriptionId> Set-AzSqlServer -ResourceGroupName your-database-server-resourceGroup -ServerName your-SQL-servername -AssignIdentity
Ten krok nie jest wymagany w przypadku dedykowanych pul SQL w obszarze roboczym usługi Azure Synapse Analytics. Tożsamość zarządzana przypisana przez system (SA-MI) obszaru roboczego jest członkiem roli Administratora usługi Synapse i w związku z tym ma podwyższony poziom uprawnień w dedykowanych pulach SQL obszaru roboczego.
Utwórz konto magazynu ogólnego przeznaczenia w wersji 2, wykonując kroki opisane w temacie Tworzenie konta magazynu.
- Jeśli masz konto ogólnego przeznaczenia w wersji 1 lub usługi Blob Storage, musisz najpierw przeprowadzić uaktualnienie do wersji 2 , wykonując kroki opisane w temacie Uaktualnianie do konta magazynu ogólnego przeznaczenia w wersji 2.
- Aby uzyskać znane problemy z usługą Azure Data Lake Storage Gen2, zobacz Znane problemy z usługą Azure Data Lake Storage Gen2.
Na stronie konta magazynu wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami).
Wybierz pozycję Dodaj>przypisanie roli, aby otworzyć stronę Dodawanie przypisania roli.
Przypisz następującą rolę. Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.
Ustawienie Wartość Rola Współautor danych w usłudze Blob Storage Przypisz dostęp do Użytkownik, grupa lub jednostka usługi Elementy członkowskie Serwer lub obszar roboczy hostujący dedykowaną pulę SQL zarejestrowaną w identyfikatorze Entra firmy Microsoft Uwaga
Ten krok może wykonać tylko członkowie z uprawnieniami właściciela na koncie magazynu. Aby zapoznać się z różnymi wbudowanymi rolami platformy Azure, zobacz Role wbudowane platformy Azure.
Aby włączyć łączność technologii PolyBase z kontem usługi Azure Storage:
Utwórz klucz główny bazy danych, jeśli nie został utworzony wcześniej.
CREATE MASTER KEY [ENCRYPTION BY PASSWORD = 'somepassword'];
Utwórz poświadczenie o zakresie bazy danych za pomocą polecenia IDENTITY = "Tożsamość usługi zarządzanej".
CREATE DATABASE SCOPED CREDENTIAL msi_cred WITH IDENTITY = 'Managed Service Identity';
Nie ma potrzeby określania klucza TAJNEgo za pomocą klucza dostępu usługi Azure Storage, ponieważ ten mechanizm używa tożsamości zarządzanej w ramach tych elementów. Ten krok nie jest wymagany w przypadku dedykowanych pul SQL w obszarze roboczym usługi Azure Synapse Analytics. Tożsamość zarządzana przypisana przez system (SA-MI) obszaru roboczego jest członkiem roli Administratora usługi Synapse i w związku z tym ma podwyższony poziom uprawnień w dedykowanych pulach SQL obszaru roboczego.
Nazwa TOŻSAMOŚCI musi mieć wartość "Tożsamość usługi zarządzanej" , aby łączność programu PolyBase działała z kontem usługi Azure Storage zabezpieczonym w sieci wirtualnej.
Utwórz zewnętrzne źródło danych ze schematem
abfss://
łączenia się z kontem magazynu ogólnego przeznaczenia w wersji 2 przy użyciu technologii PolyBase.CREATE EXTERNAL DATA SOURCE ext_datasource_with_abfss WITH (TYPE = hadoop, LOCATION = 'abfss://myfile@mystorageaccount.dfs.core.windows.net', CREDENTIAL = msi_cred);
- Jeśli masz już tabele zewnętrzne skojarzone z kontem ogólnego przeznaczenia w wersji 1 lub konta usługi Blob Storage, należy najpierw usunąć te tabele zewnętrzne. Następnie upuść odpowiednie zewnętrzne źródło danych. Następnie utwórz zewnętrzne źródło danych za pomocą schematu
abfss://
łączącego się z kontem magazynu ogólnego przeznaczenia w wersji 2, jak pokazano wcześniej. Następnie utwórz ponownie wszystkie tabele zewnętrzne przy użyciu tego nowego zewnętrznego źródła danych. Kreator generowania i publikowania skryptów umożliwia łatwe generowanie skryptów tworzenia dla wszystkich tabel zewnętrznych. - Aby uzyskać więcej informacji na temat schematu
abfss://
, zobacz Use the Azure Data Lake Storage Gen2 URI (Używanie identyfikatora URI usługi Azure Data Lake Storage Gen2). - Aby uzyskać więcej informacji na temat poleceń języka T-SQL, zobacz CREATE EXTERNAL DATA SOURCE (TWORZENIE ZEWNĘTRZNEGO ŹRÓDŁA DANYCH).
- Jeśli masz już tabele zewnętrzne skojarzone z kontem ogólnego przeznaczenia w wersji 1 lub konta usługi Blob Storage, należy najpierw usunąć te tabele zewnętrzne. Następnie upuść odpowiednie zewnętrzne źródło danych. Następnie utwórz zewnętrzne źródło danych za pomocą schematu
Wykonywanie zapytań w zwykły sposób przy użyciu tabel zewnętrznych.
Inspekcja obiektów blob usługi SQL Database
Inspekcja usługi Azure SQL może zapisywać dzienniki inspekcji SQL na własnym koncie magazynu. Jeśli to konto magazynu używa funkcji punktów końcowych usługi sieci wirtualnej, zobacz, jak zapisywać inspekcję na koncie magazynu za siecią wirtualną i zaporą.
Dodawanie reguły zapory sieci wirtualnej do serwera
Dawno temu, zanim ta funkcja została ulepszona, trzeba było włączyć punkty końcowe usługi sieci wirtualnej przed zaimplementowanie reguły aktywnej sieci wirtualnej w zaporze. Punkty końcowe powiązały daną podsieć sieci wirtualnej z bazą danych w usłudze SQL Database. Od stycznia 2018 r. można obejść to wymaganie, ustawiając flagę IgnoreMissingVNetServiceEndpoint . Teraz możesz dodać regułę zapory sieci wirtualnej do serwera bez włączania punktów końcowych usługi sieci wirtualnej.
Jedynie ustawienie reguły zapory nie pomaga zabezpieczyć serwera. Należy również włączyć punkty końcowe usługi sieci wirtualnej, aby zabezpieczenia zaczęły obowiązywać. Po włączeniu punktów końcowych usługi przestój w podsieci sieci wirtualnej do momentu zakończenia przejścia z wyłączonego na włączony. Ten okres przestoju jest szczególnie prawdziwy w kontekście dużych sieci wirtualnych. Możesz użyć flagi IgnoreMissingVNetServiceEndpoint , aby zmniejszyć lub wyeliminować przestój podczas przejścia.
Flagę IgnoreMissingVNetServiceEndpoint można ustawić przy użyciu programu PowerShell. Aby uzyskać więcej informacji, zobacz PowerShell, aby utworzyć punkt końcowy usługi sieci wirtualnej i regułę dla usługi SQL Database.
Uwaga
Aby uzyskać podobne instrukcje w usłudze Azure Synapse Analytics, zobacz Reguły zapory adresów IP usługi Azure Synapse Analytics
Tworzenie reguły sieci wirtualnej przy użyciu witryny Azure Portal
W tej sekcji pokazano, jak za pomocą witryny Azure Portal utworzyć regułę sieci wirtualnej w bazie danych w usłudze SQL Database. Reguła nakazuje bazie danych akceptowanie komunikacji z określonej podsieci oznaczonej jako punkt końcowy usługi sieci wirtualnej.
Uwaga
Jeśli zamierzasz dodać punkt końcowy usługi do reguł zapory sieci wirtualnej serwera, najpierw upewnij się, że punkty końcowe usługi są włączone dla podsieci.
Jeśli punkty końcowe usługi nie są włączone dla podsieci, portal prosi o ich włączenie. Wybierz przycisk Włącz w tym samym okienku, w którym dodasz regułę.
Wymagania wstępne
Musisz mieć już podsieć otagowane za pomocą określonej nazwy typu punktu końcowego usługi sieci wirtualnej istotnej dla usługi SQL Database.
- Odpowiednią nazwą typu punktu końcowego jest Microsoft.Sql.
- Jeśli podsieć może nie zostać oznaczona nazwą typu, zobacz Weryfikowanie, czy podsieć jest punktem końcowym.
Kroki witryny Azure Portal
Zaloguj się w witrynie Azure Portal.
Wyszukaj i wybierz pozycję Serwery SQL, a następnie wybierz serwer. W obszarze Zabezpieczenia wybierz pozycję Sieć.
Na karcie Dostęp publiczny upewnij się, że opcja Dostęp do sieci publicznej jest ustawiona na Wybierz sieci. W przeciwnym razie ustawienia sieci wirtualnych są ukryte. Wybierz pozycję + Dodaj istniejącą sieć wirtualną w sekcji Sieci wirtualne.
W nowym okienku Tworzenie/aktualizowanie wypełnij pola nazwami zasobów platformy Azure.
Napiwek
Musisz uwzględnić poprawny prefiks adresu dla podsieci. Wartość prefiksu adresu można znaleźć w portalu. Przejdź do pozycji Wszystkie zasoby>Wszystkie typy>Sieci wirtualne. Filtr wyświetla sieci wirtualne. Wybierz sieć wirtualną, a następnie wybierz pozycję Podsieci. Kolumna ZAKRES ADRESów ma potrzebny prefiks adresu.
Zobacz wynikową regułę sieci wirtualnej w okienku Zapora .
Ustaw opcję Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera na wartość Nie.
Ważne
Jeśli pozostawisz pole Wyboru Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera , serwer akceptuje komunikację z dowolnej podsieci w granicach platformy Azure. Jest to komunikacja pochodząca z jednego z adresów IP, które są rozpoznawane jako te w zakresach zdefiniowanych dla centrów danych platformy Azure. Pozostawienie włączonej kontroli może być nadmiernym dostępem z punktu widzenia zabezpieczeń. Funkcja punktu końcowego usługi Microsoft Azure Virtual Network w koordynacji z funkcją reguł sieci wirtualnej usługi SQL Database razem może zmniejszyć obszar powierzchni zabezpieczeń.
Wybierz przycisk OK w dolnej części okienka.
Uwaga
Do reguł mają zastosowanie następujące stany lub stany:
- Gotowe: wskazuje, że zainicjowana operacja zakończyła się pomyślnie.
- Niepowodzenie: wskazuje, że zainicjowana operacja nie powiodła się.
- Usunięte: dotyczy
Delete
tylko operacji i wskazuje, że reguła została usunięta i nie ma już zastosowania. - InProgress: wskazuje, że operacja jest w toku. Stara reguła ma zastosowanie, gdy operacja jest w tym stanie.
Tworzenie reguły sieci wirtualnej przy użyciu programu PowerShell
Skrypt może również tworzyć reguły sieci wirtualnej przy użyciu polecenia cmdlet New-AzSqlServerVirtualNetworkRule
programu PowerShell lub az network vnet create. Aby uzyskać więcej informacji, zobacz PowerShell, aby utworzyć punkt końcowy usługi sieci wirtualnej i regułę dla usługi SQL Database.
Tworzenie reguły sieci wirtualnej przy użyciu interfejsu API REST
Wewnętrznie polecenia cmdlet programu PowerShell dla akcji sieci wirtualnej SQL nazywają interfejsy API REST. Interfejsy API REST można wywoływać bezpośrednio. Aby uzyskać więcej informacji, zobacz Reguły sieci wirtualnej: Operacje.
Rozwiązywanie problemów z błędami 40914 i 40615
Błąd połączenia 40914 odnosi się do reguł sieci wirtualnej, jak określono w okienku Zapora w witrynie Azure Portal.
Błąd 40615 jest podobny, z wyjątkiem reguł adresów IP w zaporze.
Błąd 40914
Tekst komunikatu: "Nie można otworzyć serwera "[nazwa-serwera]" żądanego podczas logowania. Klient nie może uzyskać dostępu do serwera”.
Opis błędu: Klient znajduje się w podsieci z punktami końcowymi serwera sieci wirtualnej. Jednak serwer nie ma reguły sieci wirtualnej, która przyznaje podsieci prawo do komunikowania się z bazą danych.
Rozwiązanie błędu: w okienku Zapora witryny Azure Portal użyj kontrolki reguł sieci wirtualnej, aby dodać regułę sieci wirtualnej dla podsieci.
Błąd 40615
Tekst wiadomości: "Nie można otworzyć serwera "{0}" żądanego podczas logowania. Klient o adresie IP „{1}” nie może uzyskać dostępu do serwera”.
Opis błędu: Klient próbuje nawiązać połączenie z adresu IP, który nie jest autoryzowany do nawiązywania połączenia z serwerem. Zapora serwera nie ma reguły adresu IP, która umożliwia klientowi komunikowanie się z danego adresu IP z bazą danych.
Rozwiązanie błędu: wprowadź adres IP klienta jako regułę adresu IP. Użyj okienka Zapora w witrynie Azure Portal, aby wykonać ten krok.
Powiązane artykuły
- Punkty końcowe usługi sieci wirtualnej platformy Azure
- Reguły zapory na poziomie serwera i na poziomie bazy danych