Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2019 (15.x) a novější verze ve Windows a
SQL Serveru 2022 (16.x) – jenom Windows
Tento článek popisuje změny mechanismu izolace ve službě Machine Learning Services v SQL Serveru ve Windows, který byl poprvé představen v SQL Serveru 2019. Tyto změny mají vliv na SQLRUserGroup, pravidla brány firewall, oprávnění k souborům a předpokládané ověřování.
Další informace najdete v tématu instalace služby SQL Server Machine Learning Services ve Windows.
Změny mechanismu izolace
Ve Windows instalační program SQL změní mechanismus izolace pro externí procesy. Tato změna nahrazuje místní uživatelské účty AppContainers, což je technologie izolace pro klientské aplikace spuštěné ve Windows.
V důsledku této změny nejsou pro správce k dispozici žádné konkrétní položky akcí. Na novém nebo upgradovaném serveru se všechny externí skripty a kód spouštěné z sp_execute_external_script automaticky řídí novým modelem izolace.
Shrnuté jsou hlavní rozdíly v této verzi:
- Místní uživatelské účty v rámci skupiny uživatelů s omezeným přístupem SQL (SQLRUserGroup) se už nevytvořijí ani nepoužívají ke spouštění externích procesů. AppContainers je nahradí.
- Členství SQLRUserGroup se změnilo. Místo několika místních uživatelských účtů se členství skládá jenom z účtu služby Launchpad SQL Serveru. Procesy R a Python se teď spouštějí v rámci identity služby Launchpad izolované prostřednictvím AppContainers.
Přestože se model izolace změnil, průvodce instalací a parametry příkazového řádku zůstanou stejné jako ve starších verzích SQL Serveru. Nápovědu k instalaci najdete v tématu Instalace služeb Machine Learning Services pro SQL Server 2016–2019 nebo Instalace služeb Machine Learning Services (Python a R) pro SQL Server 2022 ve Windows.
Informace o izolaci AppContainer
V předchozích verzích obsahovala SKUPINA SQLRUserGroup fond místních uživatelských účtů Systému Windows (MSSQLSERVER00-MSSQLSERVER20), který se používá k izolování a spouštění externích procesů. Když je potřeba externí proces, služba Sql Server Launchpad převezme dostupný účet a použije ho ke spuštění procesu.
Počínaje SQL Serverem 2019 už SQL Setup nevytváří místní pracovní účty. Místo toho se izolace dosahuje prostřednictvím AppContainers. Když se v uložené proceduře nebo dotazu zjistí vložený skript nebo kód, SQL Server volá Launchpad s požadavkem na spouštěč specifický pro rozšíření. Launchpad vyvolá příslušné běhové prostředí v procesu pod jeho identitou a vytvoří instanci AppContainer, která ho bude obsahovat. Tato změna je užitečná, protože místní účet a správa hesel se už nevyžadují. Také u instalací, kde jsou zakázány místní uživatelské účty, odstranění závislostí místních uživatelských účtů znamená, že teď můžete tuto funkci použít.
Jak je implementované SQL Serverem, AppContainers jsou interním mechanismem. I když v nástroji Process Monitor neuvidíte fyzické důkazy o službě AppContainers, můžete je najít v odchozích pravidlech brány firewall vytvořených nastavením, abyste zabránili procesům v provádění síťových volání.
Pravidla brány firewall vytvořená nastavením
SQL Server ve výchozím nastavení zakáže odchozí připojení vytvořením pravidel brány firewall. V minulosti byla tato pravidla založená na místních uživatelských účtech, kde instalační program vytvořil jedno odchozí pravidlo pro sqlRUserGroup , které odepřelo síťový přístup ke svým členům (každý pracovní účet byl uveden jako místní princip, který se řídí pravidlem).
V rámci přechodu na AppContainers existují nová pravidla brány firewall založená na identifikátorech SID appContainer: jedna pro každý z 20 appContainerů vytvořených instalací SQL Serveru. Konvence vytváření názvů pro název pravidla brány firewall jsou blokovat síťový přístup pro AppContainer-00 v instanci SQL Serveru MSSQLSERVER, kde 00 je číslo AppContainer (ve výchozím nastavení 00–20) a MSSQLSERVER je název instance SQL Serveru.
Poznámka:
Pokud se vyžadují síťová volání, můžete zakázat pravidla odchozích přenosů v bráně Windows Firewall.
Oprávnění k souborům
Ve výchozím nastavení mají externí skripty Pythonu a R oprávnění ke čtení jen pro své pracovní adresáře.
Pokud skripty Pythonu nebo R potřebují přístup k jinému adresáři, musíte udělit oprávnění ke čtení a/ nebo zápisu k uživatelskému účtu služby NT Service\MSSQLLaunchpad a všem balíčkům aplikací v tomto adresáři.
Pokud chcete udělit přístup, postupujte podle následujících kroků.
- V Průzkumníku souborů klikněte pravým tlačítkem na složku, kterou chcete použít jako pracovní adresář, a vyberte Vlastnosti.
- Vyberte Zabezpečení a klikněte na Upravit... a změňte oprávnění.
- Klikněte na Přidat...
- Ujistěte se, že v položce z tohoto umístění je uveden název místního počítače.
- Zadejte ALL APPLICATION PACKAGES do pole Zadejte názvy objektů, které chcete vybrat, a klikněte na Zkontrolovat názvy. Klikněte na OK.
- Ve sloupci Povolit vyberte Možnost Číst a spustit.
- Pokud chcete udělit oprávnění k zápisu, vyberte ve sloupci Povolit možnost Zapisovat.
- Klikněte na OK a OK.
Oprávnění k souborům programu
Stejně jako v předchozích verzích sqlRUserGroup nadále poskytuje oprávnění ke čtení a spouštění u spustitelných souborů v adresářích SQL Server Binn, R_SERVICES a PYTHON_SERVICES . V této verzi je jediným členem skupiny SQLRUserGroup účet služby Launchpad SYSTÉMU SQL Server. Když služba Launchpad spustí spouštěcí prostředí R nebo Python, proces se spustí jako služba LaunchPad.
Implicitní ověřování
Stejně jako dříve se pro implicitní ověřování stále vyžaduje další konfigurace v případech, kdy se skript nebo kód musí připojit zpět k SQL Serveru pomocí důvěryhodného ověřování pro načtení dat nebo prostředků. Další konfigurace zahrnuje vytvoření přihlášení databáze pro SQLRUserGroup, jehož jediným členem je nyní jediný účet služby Launchpad SQL Serveru místo více pracovních účtů. Další informace o této úloze naleznete v tématu Přidání sqlRUserGroup jako uživatele databáze.
Symbolický odkaz vytvořený nastavením
Symbolický odkaz se vytvoří na aktuální výchozí R_SERVICES a PYTHON_SERVICES v rámci instalace SYSTÉMU SQL Server. Pokud nechcete vytvořit tento odkaz, alternativou je udělení oprávnění ke čtení všech balíčků aplikací hierarchii, která vede ke složce.