Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2019 (15.x) ve sonraki sürümleri
Veritabanındaki dış dil uzantılarını belirtilen dosya yolundan veya bayt akışından kaydeder. Bu ifa, veritabanı yöneticisinin SQL Server'ın desteklediği herhangi bir işletim sistemi platformunda yeni dış dil uzantılarını kaydetmesi için genel bir mekanizmadır. Daha fazla bilgi için Dil Uzantıları bölümünü inceleyebilirsiniz.
Note
R ve Python ise ayrılmış isimlerdir. Bu özel isimlerle harici bir dil oluşturamazsınız. R ve Python kullanımı hakkında daha fazla bilgi için SQL Server Machine Learning Hizmetleri'ne bakınız.
Syntax
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
Diller, veritabanı kapsamında nesnelerdir. Dil isimleri veritabanında benzersiz olmalıdır.
owner_name
Dış dili sahip olan kullanıcının veya rolün adını belirtir. Bir değer belirtmezseniz, mevcut kullanıcı sahibi olur. İzinlere bağlı olarak, diğer kullanıcılar belirli bir dil kullanarak script çalıştırmak için açık izne ihtiyaç duyabilir.
file_spec
Dil uzantısının içeriğini belirtir. Her platform için belirli bir dil için sadece bir tane <file_spec> izin verilir.
external_lang_specifier
Uzantının kodunu içeren .zip veya tar.gz dosyasına giden tam dosya yolu. Bu içerik ya .zip dosyasına giden yol (Windows'te) ya da tar.gz dosyasına (Linux'ta) yol olabilir.
content_bits
Dilin içeriğini, assemble'lere benzer şekilde, bir hex literal olarak belirtir.
Sunucu dosya sistemi kısıtlıyken ve kütüphane dosyalarını sunucunun erişebileceği bir konuma kopyalayamadığınızda bu seçeneği kullanın. Dili oluşturmak veya değiştirmek için gerekli izinlere sahip olmanız gerekir.
external_lang_file_name
Uzantı .dll veya .so dosyasının adı. İsim, .zip veya tar.gz'de birkaç .dll veya .so dosyası <external_lang_specifier> bulunduğunda doğru dosyayı belirler.
external_lang_parameters
Harici dil çalışma zamanına iletecek bir parametre kümesi belirtir. Harici çalışma zamanı, harici süreç başladıktan sonra parametre değerlerini alır. Buna karşılık, çevresel değişkenler dış süreç başlamadan önce dil uzantısına erişilebilir hale gelir.
external_lang_env_variables
Dış dil çalışma zamanına dış süreç başlamadan önce sunulacak bir dizi ortam değişkeni belirtir. Örneğin, çalışma zamanının ana dizinini ayarlayın, örneğin JRE_HOME.
peron
Bu parametre hibrit işletim sistemi senaryoları için gereklidir. Hibrit mimaride, her platform için dili bir kez kaydetmeniz gerekir. Bir platform belirtmezseniz, SQL Server mevcut işletim sistemini varsayıyor.
Permissions
CREATE EXTERNAL LANGUAGE izni gerektirir. Varsayılan olarak, db_owner sabit veritabanı rolünün herhangi bir üyesi harici bir dil oluşturma iznine sahiptir. Diğer tüm kullanıcılar için, ayrıcalık olarak belirten bir GRANT ifade CREATE EXTERNAL LANGUAGE kullanarak açıkça izin vermelisiniz.
Bir kütüphaneyi değiştirmek için ayrı bir izne ihtiyacınız var, ALTER ANY EXTERNAL LANGUAGE.
HARİŞ BETIK YÜRÜTME izni
Belirli dillerde harici script çalıştırma izinlerini kullanın EXECUTE EXTERNAL SCRIPT .
EXECUTE EXTERNAL SCRIPT
EXECUTE ANY EXTERNAL SCRIPT veritabanı izninden farklıdır; veritabanı belirli bir dilde yürütme izni verilmesine izin vermez.
Dbo dışı kullanıcıların belirli bir dili çalıştırma izni verin:
GRANT EXECUTE EXTERNAL SCRIPT ON EXTERNAL LANGUAGE ::language_name
TO database_principal_name;
Dış kütüphanelere referans izinleri
Assemble'lara benzer şekilde, dış diller de dış kütüphaneler ile dış diller arasında bağlantı sağlamak için referans izinleri gerektirir. Örneğin, harici bir dili bırakmadan önce, ona referans veren tüm dış kütüphaneleri kaldırmalısınız. Dış dili, hiyerarşideki dış kütüphanelerden daha yüksek seviyeli bir nesne olarak görebilirsiniz.
Examples
A. Bir veritabanında harici bir dil oluşturun
Aşağıdaki örnek, Windows üzerinde SQL Server'da bir veritabanına Java adlı bir dış dil ekler.
CREATE EXTERNAL LANGUAGE Java
FROM (CONTENT = N'<path-to-zip>', FILE_NAME = 'javaextension.dll');
GO
B. Hem Windows hem de Linux için harici bir dil oluşturun
Biri Windows, biri Linux için olmak üzere en fazla iki <file_spec>tane belirtebilirsiniz.
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. Dış betik çalıştırmak için izin ver
Aşağıdaki örnek, mylogin başyapıtına betikleri Java dış diliyle çalıştırmak için erişim sağlar.
GRANT EXECUTE EXTERNAL SCRIPT ON EXTERNAL LANGUAGE ::Java
TO mylogin;