V administraci SQL Server existují 2 pojmy, které si mezi sebou můžeme snadno splést. Jde o SQL Login a SQL User. Zatímto SQL Login umožňuje spravovat oprávnění pro přístup k serveru, tak SQL User definuje práva pro přístup k databázím. V tomto článku se blíže podíváme na Login.
SQL Login
Umožňuje přístup k SQL Serveru. Existují 2 alternativy jak se připojit
- Windows Authentication
- SQL Authentication
První způsob funguje na základě doménového účtu v Active directory (Windows účet). Druhý způsob je založení SQL Loginu a hesla přímo na serveru. U druhé metody se vám může stát, že připojení k serveru nebude fungovat s oznámením “Login failed for user”. Je to způsobeno tím, že ve vlastnostech serveru musí být tato metoda přihlášení povolena – defaultne po instalaci povolena není (viz tento článek – Login failed for user).
Server role v SQL server
- sysadmin – Nejvyšší oprávnění, může dělat na serveru jakékoliv aktivity
- serveradmin – Přístup do konfigurace serveru, možnost vypnout server
- setupadmin – Může linkovat servery
- securityadmin – Může spravovat uživatelská oprávnění přístupu k databázím a serveru. Může také obnovit hesla
- processadmin – Může killnout (ukončit) procesy na SQL serveru
- dbcreator – Vytváří, mění nebo odstraňuje libovolnou databázi
- diskadmin – Má právo na správu siskových souborů databází
- bulkadmin – oprávnění na BULK INSERT
- public – nejnižší oprávnění. Není-li pro uživatele stanoveno vyšší oprávnění, tak dědí public
SQL Script na vytvoření Loginu (Create Login):
1) Příklad založení loginu s rolí sysadmin, defaultní databází a jazykem
DECLARE @userid sysname = ‘Login’, @password sysname = ‘Heslo’
EXEC sp_addlogin
@loginame = @userid,
@passwd = @password,
@defdb = ‘Databáze’,
@deflanguage = [British],
@sid = null,
@encryptopt= null;
EXEC sys.sp_addsrvrolemember @userid, @rolename = N‘sysadmin’;
2) Založení obyčejného loginu bez dalších nastavení
CREATE LOGIN Login WITH PASSWORD = ‘Zp?H!Dc598mt$D’/’ ;