Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2019 (15.x) i nowsze wersje
Rejestruje rozszerzenia języka zewnętrznego w bazie danych z określonej ścieżki pliku lub strumienia bajtów. To stwierdzenie jest ogólnym mechanizmem dla administratora bazy danych rejestrującego nowe zewnętrzne rozszerzenia językowe na dowolnej platformie operacyjnej obsługiwanej przez SQL Server. Więcej informacji można znaleźć w sekcji Rozszerzenia języka.
Note
R i Python to nazwy zarezerwowane. Nie możesz stworzyć języka zewnętrznego z tymi konkretnymi nazwami. Więcej informacji o tym, jak korzystać z R i Python, można znaleźć w sekcji SQL Server Machine Learning Services.
Składnia
CREATE EXTERNAL LANGUAGE language_name
[ AUTHORIZATION owner_name ]
FROM <file_spec> [ ,...2 ]
[ ; ]
<file_spec> ::=
{
( CONTENT = { <external_lang_specifier> | <content_bits> },
FILE_NAME = <external_lang_file_name>
[ , PLATFORM = <platform> ]
[ , PARAMETERS = <external_lang_parameters> ]
[ , ENVIRONMENT_VARIABLES = <external_lang_env_variables> ] )
}
<external_lang_specifier> :: =
{
'[file_path\]os_file_name'
}
<content_bits> :: =
{
varbinary_literal
| varbinary_expression
}
<external_lang_file_name> :: =
'extension_file_name'
<platform> :: =
{
WINDOWS
| LINUX
}
<external_lang_parameters> :: =
'extension_specific_parameters'
Arguments
language_name
Języki są obiektami o skali bazy danych. Nazwy języków muszą być unikalne w bazie danych.
owner_name
Określa nazwę użytkownika lub rolę, która jest właścicielem języka zewnętrznego. Jeśli nie określisz wartości, obecny użytkownik staje się właścicielem. W zależności od uprawnień, inni użytkownicy mogą potrzebować wyraźnych uprawnień do wykonywania skryptów w określonym języku.
file_spec
Określa zawartość rozszerzenia języka. Dozwolony jest tylko jeden <file_spec> dla konkretnego języka, na każdej platformie.
external_lang_specifier
Pełna ścieżka pliku do pliku .zip lub tar.gz, który zawiera kod rozszerzenia. Ta treść może być ścieżką do pliku .zip (na Windows) lub plikiem tar.gz (na Linuksie).
content_bits
Określa zawartość języka jako literal heksiędelny, podobnie jak assemblies.
Użyj tej opcji, gdy system plików serwera jest ograniczony i nie możesz skopiować plików biblioteki do miejsca, do którego serwer ma dostęp. Musisz mieć wymagane uprawnienia do tworzenia lub zmiany języka.
external_lang_file_name
Nazwa rozszerzenia .dll pliku .so. Nazwa wskazuje właściwy plik, gdy w .zip lub tar.gz istnieje kilka plików <external_lang_specifier> .dll lub .so.
external_lang_parameters
Określa zestaw parametrów, które należy przekazać do zewnętrznego środowiska wykonawczego języka. Zewnętrzne środowisko wykonawcze otrzymuje wartości parametrów po rozpoczęciu procesu zewnętrznego. Zmienne środowiskowe, w przeciwieństwie do tego, stają się dostępne dla rozszerzenia języka zanim proces zewnętrzny się rozpocznie.
external_lang_env_variables
Określa zestaw zmiennych środowiskowych, które mają być dostępne dla środowiska wykonawczego języka zewnętrznego przed rozpoczęciem procesu zewnętrznego. Na przykład ustaw katalog domowy samego środowiska wykonawczego, na przykład .JRE_HOME
podest
Ten parametr jest potrzebny w scenariuszach hybrydowych systemów operacyjnych. W architekturze hybrydowej musisz zarejestrować język raz na platformę. Jeśli nie określisz platformy, SQL Server zakłada aktualny system operacyjny.
Permissions
Wymaga uprawnienia CREATE EXTERNAL LANGUAGE. Domyślnie każdy członek db_owner stałej roli bazy danych ma uprawnienia do tworzenia języka zewnętrznego. Dla wszystkich pozostałych użytkowników musisz wyraźnie przyznać uprawnienia, używając GRANT instrukcji określającej CREATE EXTERNAL LANGUAGE jako uprawnienie.
Aby modyfikować bibliotekę, potrzebujesz osobnych uprawnień, ALTER ANY EXTERNAL LANGUAGE.
UPRAWNIENIA DO WYKONANIA ZEWNĘTRZNEGO SKRYPTU
Używaj EXECUTE EXTERNAL SCRIPT uprawnień, aby przyznać zewnętrzne wykonywanie skryptów w określonych językach.
EXECUTE EXTERNAL SCRIPT różni się od uprawnień do bazy EXECUTE ANY EXTERNAL SCRIPT danych, które nie pozwalają na przyznanie zezwoleń na wykonywanie w konkretnym języku.
Udziel użytkownikom niebędącym DBO uprawnienia do wykonywania określonego języka:
GRANT EXECUTE EXTERNAL SCRIPT ON EXTERNAL LANGUAGE ::language_name
TO database_principal_name;
Odwołania uprawnień do zewnętrznych bibliotek
Podobnie jak asemble, języki zewnętrzne wymagają uprawnień do odwoływania, aby istniał związek między bibliotekami zewnętrznymi a językami zewnętrznymi. Na przykład, zanim odrzucisz język zewnętrzny, musisz usunąć wszystkie zewnętrzne biblioteki, które się do niego odwołują. Traktuj język zewnętrzny jako obiekt wyższego poziomu niż zewnętrzne biblioteki w hierarchii.
Examples
A. Utworzenie języka zewnętrznego w bazie danych
Poniższy przykład dodaje język zewnętrzny o nazwie Java do bazy danych w programie SQL Server w systemie Windows.
CREATE EXTERNAL LANGUAGE Java
FROM (CONTENT = N'<path-to-zip>', FILE_NAME = 'javaextension.dll');
GO
B. Stwórz język zewnętrzny zarówno dla Windows, jak i Linux
Można określić maksymalnie dwa <file_spec>, jeden dla systemu Windows i jeden dla systemu Linux.
CREATE EXTERNAL LANGUAGE Java
FROM
(CONTENT = N'<path-to-zip>', FILE_NAME = 'javaextension.dll', PLATFORM = WINDOWS),
(CONTENT = N'<path-to-tar.gz>', FILE_NAME = 'javaextension.so', PLATFORM = LINUX);
GO
C. Przyznanie uprawnień do wykonywania zewnętrznego skryptu
Poniższy przykład daje principalowi mylogin dostęp do wykonywania skryptów w języku zewnętrznym Java.
GRANT EXECUTE EXTERNAL SCRIPT ON EXTERNAL LANGUAGE ::Java
TO mylogin;