Transact-sql, додавання користувачів бази даних
Користувач може увійти в систему баз даних, використовуючи обліковий запис користувача Windows або реєстраційне ім'я входу в SQL Server. Для подальшого доступу і роботи з певною базою даних користувач також повинен мати обліковий запис користувача бази даних. Для роботи з кожною окремою базою даних потрібно створити обліковий запис користувача саме для цієї бази даних. Обліковий запис користувача бази даних можна зіставити з існуючою обліковим записом користувача Windows, групою Windows (в якій користувач має членство), реєстраційним ім'ям або роллю.
Керувати користувачами баз даних можна за допомогою середовища Management Studio або інструкцій мови Transact-SQL. Обидва ці способу розглядаються в наступних підрозділах.
Управління користувачами бази даних за допомогою середовища Management Studio
Щоб додати користувача бази даних за допомогою середовища Management Studio, розгорніть вузол сервера у вікні Object Explorer і в ньому папку "Databases", в цій папці розгорніть вузол необхідної бази даних, а в ній папку "Security". Клацніть правою кнопкою миші папку "Users" і в контекстному меню виберіть пункт New User. Відкриється діалогове вікно Database User - New, в якому слід ввести ім'я користувача User name і вибрати відповідну реєстраційну ім'я Login name:

Тут можна також вибрати схему за замовчуванням для даного користувача.
Управління безпекою бази даних за допомогою інструкцій мови Transact-SQL
Для додавання користувача в поточну базу даних використовується інструкція CREATE USER. Синтаксис цієї інструкції виглядає таким чином:
Параметр user_name визначає ім'я, по якому користувач ідентифікується в базі даних, а в параметрі login вказується реєстраційне ім'я, для якого створюється даний користувач. В параметрах cert_name і key_name вказуються відповідний сертифікат і асиметричний ключ відповідно. Нарешті, в параметрі WITH DEFAULT_SCHEMA вказується перша схема, з якою сервер бази даних буде починати пошук для розпізнавання імен об'єктів для даного користувача бази даних.
Застосування інструкції CREATE USER показано в прикладі нижче:
Для успішного виконання на вашому комп'ютері другий інструкції прикладу потрібно спочатку створити обліковий запис Windows для користувача Alexandr і замість домену (сервера) ProfessorWeb вказати ім'я вашого сервера.
У цьому прикладі перша інструкція CREATE USER створює користувача бази даних Vasya для користувача Vasya облікового запису Windows. Схемою за замовчуванням для користувача Vasya буде dbo, оскільки для параметра DEFAULT_SCHEMA значення не вказано. Друга інструкція CREATE USER створює нового користувача бази даних Alex. Схемою за замовчуванням для цього користувача буде схема poco. (Параметру DEFAULT_SCHEMA можна привласнити як значення схему, яка в даний час не існує в базі даних.)
За допомогою інструкції ALTER USER можна змінити ім'я користувача бази даних, змінити схему користувача за замовчуванням або перевизначити користувача з іншим реєстраційним ім'ям. Подібно інструкції CREATE USER, користувачеві можна присвоїти схему за замовчуванням перш, ніж вона створена.
Для видалення користувача з поточної бази даних застосовується інструкція DROP USER. Користувача, який є власником об'єктів, що захищаються (об'єктів бази даних), видалити не можна.
Схеми бази даних за замовчуванням
Кожна база даних в системі має такі схеми за замовчуванням:
Компонент Database Engine дозволяє користувачам, які не мають облікового запису користувача, працювати з базою даних, використовуючи схему guest. (Кожна створена база даних має цю схему.) Для схеми guest можна застосовувати дозволу таким же чином, як і для будь-якої іншої схеми. Крім цього, схему guest можна видалити з будь-якої бази даних, крім системних баз даних master і tempdb.
Кожен об'єкт бази даних належить одній, і тільки одній схемі, яка є схемою за замовчуванням для даного об'єкта. Схема за замовчуванням може бути визначена явно або неявно. Якщо при створенні об'єкта його схема за замовчуванням не визначена явно, цей об'єкт належить до схеми dbo. Крім цього, при використанні належної йому бази даних реєстраційне ім'я завжди має спеціальне ім'я користувача dbo.
Вся інформація про схеми міститься в схемі information_schema. Схема sys, як можна здогадатися, містить системні об'єкти, такі як подання каталогу.