Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ogólna forma adresu URL połączenia to
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
Where:
jdbc:sqlserver:// (wymagane) — jest znany jako podprotocol i jest stały.
serverName (Opcjonalnie) — Adres serwera, z którym należy się połączyć. Ten adres może być adresem DNS lub IP albo może być
localhostlub127.0.0.1dla komputera lokalnego. Jeśli nie zostanie określony w adresie URL połączenia, nazwa serwera musi być określona w kolekcji właściwości.instanceName (opcjonalnie) — to instancja, do której należy się połączyć na
serverName. Jeśli nie zostanie określony, sterownik łączy się z wystąpieniem domyślnym.portNumber (opcjonalnie) — port, z którym ma nawiązać połączenie w systemie
serverName. Wartość domyślna to1433. Jeśli używasz portu domyślnego, nie musisz określać portu ani powyższego:w adresie URL.Uwaga / Notatka
Aby uzyskać optymalną wydajność połączenia, określ wartość
portNumberpodczas nawiązywania połączenia z nazwanym wystąpieniem. Pozwala to uniknąć rundy na serwerze w celu określenia numeru portu. Jeśli używasz zarównoportNumberjak iinstanceName,portNumberma pierwszeństwo, ainstanceNamejest ignorowany.właściwość (opcjonalnie) — jest jedną lub większą liczbą opcjonalnych właściwości połączenia. Aby uzyskać więcej informacji, zobacz Ustawianie właściwości połączenia. Można określić dowolną właściwość z listy. Właściwości można rozdzielać tylko średnikami (
;) i nie można ich duplikować.
Ostrzeżenie
W celach bezpieczeństwa należy unikać tworzenia adresów URL połączeń na podstawie danych wejściowych użytkownika. Należy określić tylko nazwę serwera i sterownik w adresie URL. W przypadku wartości nazwy użytkownika i hasła użyj kolekcji właściwości połączenia. Aby uzyskać więcej informacji na temat zabezpieczeń w aplikacjach JDBC, zobacz Zabezpieczanie aplikacji sterowników JDBC.
Właściwości połączenia
Aby uzyskać szczegółową listę właściwości, które można ustawić w parametrach połączenia, zobacz Ustawianie właściwości połączenia.
Przykłady połączeń
Połącz się z domyślną bazą danych na komputerze lokalnym przy użyciu nazwy użytkownika i hasła:
jdbc:sqlserver://localhost;encrypt=true;user=MyUserName;password=<password>;
Uwaga / Notatka
Mimo że w poprzednim przykładzie użyto nazwy użytkownika i hasła w parametrach połączenia, należy użyć zintegrowanych zabezpieczeń, ponieważ jest ona bezpieczniejsza. Aby uzyskać więcej informacji, zobacz sekcję Łączenie ze zintegrowanym uwierzytelnianiem w dalszej części tego artykułu.
Poniższe parametry połączenia pokazują przykład sposobu nawiązywania połączenia z bazą danych programu SQL Server przy użyciu zintegrowanego uwierzytelniania i protokołu Kerberos z poziomu aplikacji działającej w dowolnym systemie operacyjnym obsługiwanym przez sterownik JDBC firmy Microsoft dla programu SQL Server:
jdbc:sqlserver://;servername=server_name;encrypt=true;integratedSecurity=true;authenticationScheme=JavaKerberos
Połącz się z domyślną bazą danych na komputerze lokalnym przy użyciu zintegrowanego uwierzytelniania:
jdbc:sqlserver://localhost;encrypt=true;integratedSecurity=true;Nawiąż połączenie z nazwaną bazą danych na serwerze zdalnym:
jdbc:sqlserver://localhost;encrypt=true;databaseName=AdventureWorks;integratedSecurity=true;Połącz się na domyślnym porcie z serwerem zdalnym:
jdbc:sqlserver://localhost:1433;encrypt=true;databaseName=AdventureWorks;integratedSecurity=true;Połącz się, określając niestandardową nazwę aplikacji:
jdbc:sqlserver://localhost;encrypt=true;databaseName=AdventureWorks;integratedSecurity=true;applicationName=MyApp;
Nazwane i wielokrotne wystąpienia SQL Server
Program SQL Server umożliwia instalację wielu wystąpień bazy danych na serwer. Każde wystąpienie ma określoną nazwę. Aby nawiązać połączenie z instancją o nazwie programu SQL Server, możesz określić numer portu tej instancji, co jest preferowane. Możesz również określić nazwę wystąpienia jako właściwość adresu URL JDBC lub właściwość źródła danych . Jeśli nie określisz nazwy wystąpienia lub właściwości numeru portu, sterownik utworzy połączenie z wystąpieniem domyślnym. Zobacz następujące przykłady:
Aby określić numer portu, użyj następującego formatu:
jdbc:sqlserver://localhost:1433;encrypt=true;integratedSecurity=true;<more properties as required>;Aby użyć właściwości adresu URL JDBC, użyj następującego formatu:
jdbc:sqlserver://localhost;encrypt=true;instanceName=instance1;integratedSecurity=true;<more properties as required>;
Ucieczka wartości w adresie URL połączenia
Może być konieczne ucieczka niektórych części wartości adresu URL połączenia, jeśli wartości obejmują znaki specjalne, takie jak spacje, średniki i cudzysłów. Sterownik JDBC obsługuje ucieczkę tych znaków poprzez ujęcie ich w nawiasy klamrowe. Na przykład {;} ucieczka średnika.
Przed wersją 8.4, wartości escape'owane mogą zawierać znaki specjalne (zwłaszcza =, ;, [] oraz spacja), ale nie mogą zawierać nawiasów klamrowych {}. Wartości, które muszą zostać uniknięte i zawierają nawiasy klamrowe, należy dodać do kolekcji właściwości.
W wersji 8.4 lub nowszej wartości ucieczki mogą zawierać znaki specjalne, w tym nawiasy klamrowe. Należy jednak zamknąć nawiasy klamrowe. Na przykład, dla hasła pass";{}word, łańcuch połączenia musi zawierać znak ucieczki dla hasła w następujący sposób:
jdbc:sqlserver://localhost;encrypt=true;username=MyUsername;password={pass";{}}word};
Uwaga / Notatka
Białe spacje wewnątrz nawiasów klamrowych są dosłowne i nie są przycięte.
Nawiązywanie połączenia przy użyciu zintegrowanego uwierzytelniania w systemie Windows
Sterownik JDBC obsługuje użycie zintegrowanego uwierzytelniania typu 2 w systemach operacyjnych Windows przy użyciu integratedSecurity właściwości parametrów połączenia. Aby użyć zintegrowanego mssql-jdbc_auth-<version>-<arch>.dll uwierzytelniania, skopiuj plik do dowolnego katalogu, który znajduje się w zmiennej środowiskowej systemu PATH Windows.
Uwaga / Notatka
Biblioteka DLL nie musi znajdować się w tym samym katalogu co plik JAR sterownika JDBC. Musi on znajdować się w katalogu wymienionym w systemie PATH, na przykład C:\Windows\System32 lub w katalogu niestandardowym dodanym do listy katalogów PATH.
Pliki mssql-jdbc_auth-<version>-<arch>.dll są instalowane w następującej lokalizacji:
<installation directory>\sqljdbc_<version>\<language>\auth\
W przypadku dowolnego systemu operacyjnego obsługiwanego przez sterownik JDBC firmy Microsoft dla programu SQL Server, zobacz Używanie zintegrowanego uwierzytelniania Kerberos w celu nawiązania połączenia z programem SQL Server , aby uzyskać opis funkcji dodanej w sterowniku JDBC firmy Microsoft 4.0 dla programu SQL Server, który umożliwia aplikacji łączenie się z bazą danych przy użyciu zintegrowanego uwierzytelniania z typem 4 Kerberos.
Uwaga / Notatka
Jeśli używasz 32-bitowej maszyny wirtualnej Java (JVM), użyj mssql-jdbc_auth-<version>-<arch>.dll pliku w folderze x86, nawet jeśli system operacyjny jest wersją x64. Jeśli używasz 64-bitowej maszyny wirtualnej JVM na procesorze x64, użyj mssql-jdbc_auth-<version>-<arch>.dll pliku w folderze x64.
Alternatywnie można ustawić właściwość systemową java.library.path, aby określić katalog mssql-jdbc_auth-<version>-<arch>.dll. Jeśli na przykład sterownik JDBC został zainstalowany w katalogu domyślnym, możesz określić lokalizację biblioteki DLL przy użyciu następującego argumentu maszyny wirtualnej podczas uruchamiania aplikacji Java:
-Djava.library.path=C:\Microsoft JDBC Driver 6.4 for SQL Server\sqljdbc_<version>\enu\auth\x86
Nawiązywanie połączenia przy użyciu adresów IPv6
Sterownik JDBC obsługuje używanie adresów IPv6 ze zbiorem właściwości połączenia oraz z właściwością ciągu połączenia serverName. Wartość początkowa serverName , taka jak jdbc:sqlserver://serverName, nie jest obsługiwana dla adresów IPv6 w parametrach połączenia. Użycie nazwy dla serverName zamiast nieprzetworzonego adresu IPv6 działa w każdym przypadku w połączeniu. Poniższe przykłady zawierają więcej informacji.
Aby użyć właściwości serverName:
jdbc:sqlserver://;serverName=3ffe:8311:eeee:f70f:0:5eae:10.203.31.9\\instance1;encrypt=true;integratedSecurity=true;Aby użyć kolekcji właściwości:
Properties pro = new Properties();pro.setProperty("serverName", "serverName=3ffe:8311:eeee:f70f:0:5eae:10.203.31.9\\instance1");Connection con = DriverManager.getConnection("jdbc:sqlserver://;encrypt=true;integratedSecurity=true;", pro);