Integrované loginy

Top  Previous  Next

Seznam témat:

řešení

 

Řešení

K databázím Sybase ASA se lze nalogovat, buď zadáním dvojice jméno+heslo (dvojice musí existovat v databázi) anebo lze aktivovat tzv. integrated logins (dále IL), kdy se při přihlášení jméno a heslo vynechávají a autentizace je přenesena na operační systém/doménový server. V databázi se jen musí namapovat k systémovému účtu odpovídající databázový účet, který bude při loginu použit. K jednomu účtu v DB pak klidně můžeme namapovat více systémových účtů. Pokud se Vision32.exe spustí s parametrem /IL, nebude vůbec možné jméno a heslo vložit.

Integrované loginy lze využít pouze na platformě Windows.

 

Pokud běží SQL server hostující databázi na jiném stroji než klient (což většinou platí), tak systémový účet musí existovat jak na klientovi, tak na serveru. Ideální situace je v sítích, kde se klienti se přihlašují do domény a práva jsou centrálně spravována technologií Active Directory.

Integrovaný login lze s výhodou použít na automatické provádění různých dávek pracujících s externími utilitami vyžadující login (typicky dbbackup.exe). Standardně by se do těchto dávek muselo uvést přihlašovací jméno a heslo, což je nežádoucí. IL lze pohodlně přidávat a mazat pomocí nástroje Sybase Central.

 

Databáze rozeznává tři režimy loginů:

STANDARD - akceptují se jen účty v DB (výchozí)
INTEGRATED - akceptují se jen účty ve Windows (+ administrátorské účty v DB)
MIXED - akceptují se oba typy účtů

 

Z bezpečnostních důvodů se důrazně doporučuje na windows zakázat usera GUEST a nedoporučuje se vytvářet mapování na usera DBA. V případě nutnosti namapovat administrátora, použijte jiný vhodný účet, např. "admin".

 

Příklad 1:

Dejme tomu, že v DB existuje účet "karelnovak" a ve Windows je účet "DOMAIN\knovak". Po provedení níže uvedeného SQL skriptu se systémový user "knovak" už nemusí logovat do databáze jménem a heslem. Pokud je nezadá, bude automaticky přihlášen jako "karelnovak" (musí ale být přihlášen do Windows).

 

SET OPTION PUBLIC.login_mode = 'mixed'

go

GRANT INTEGRATED LOGIN TO "DOMAIN\knovak" AS USER "karelnovak"

 

Příklad 2:

Je potřeba provádět automatické zálohování pomocí externí utility dbbackup.exe. Předpokládejme, že v DB existuje administrátorský účet "admin" a na serveru existuje účet "administrator". Následující skript provede povolení IL a namapuje účty:

 

SET OPTION PUBLIC.login_mode = 'mixed'

go

GRANT INTEGRATED LOGIN TO administrator AS USER admin

 

 

Dále se na windowsovém serveru vytvoří dávka realizující zálohování, přičemž ve připojovacích údajích se vynechá jméno a heslo:

cesta\dbbackup.exe -c "dsn=odbc_dsn" -y outputdir

 

Dále se vytvoří naplánovaná úloha, která tuto dávku bude spouštět. U naplánované úlohy je nutné nastavit aby byla prováděna pod účtem "administrator". Jen tak dojde ke správnému přihlášení k databázi i v případě, že na konzoli serveru nebude nikdo přihlášen.

 

Související témata