Як я можу відобразити вхід у базу даних за допомогою T-SQL (не SSMS)


12

Я пишу програму, яка вимагає від мене призначити всі дозволи та все в коді. Я застряг у цій частині:

введіть тут опис зображення

Я просто хочу зробити еквівалент клацання маленького поля в розділі "Карта" для бази даних msdb і призначення цього користувача ролі SqlAgentUser. Мені потрібен користувач, щоб мати змогу додавати / редагувати завдання агента SQL Server. Я можу отримати налаштування правильно за допомогою SSMS, але я не можу протягом життя зрозуміти, як це зробити в необробленому SQL.

Я заглянув у ВНІШНІЙ ВХОД, але не бачу нічого, що робить те, що мені потрібно. Я підозрюю, що я просто не знаю правильних умов Google. Я зазвичай не займаюся подібними справами.

Будь-яка допомога дуже цінується!


3
Ви можете "генерувати сценарій", який, на мою думку, допоможе вам у майбутніх проектах. У верхній частині екрана.
Racer SQL

1
@RafaelPiccinelli о боже, що так корисно! Я навіть цього не помічав! Дякую тобі!
eddie_cat

Я дуже поганий в кодах, це допоможе мені багато.
Racer SQL

Відповіді:


18
USE msdb;
GO
CREATE USER shims FROM LOGIN shims;
GO
ALTER ROLE SqlAgentUserRole ADD MEMBER shims;
GO

Крім того, для подальшої довідки, щоразу, коли ви знаєте, як зробити щось в інтерфейсі, але не в сценарії, саме для цього потрібна Scriptопція в більшості діалогових вікон - це покаже вам, який сценарій SSMS виконував би:

введіть тут опис зображення


3

Якщо ви хочете змінити поточну \ за замовчуванням базу даних на іншу, спробуйте:

alter login <loginname> with default_database = <dbname>;

Тепер створіть користувача для створеного вище входу

 use <dbname>;
 create user <username> from login <loginname>;

А тепер ви можете призначити ролі вищевказаному створенню користувача для входу в систему, як показано нижче:

use <dbname>
exec sp_addrolemember 'db_owner', '<username>';

3
Із Документів :This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use ALTER ROLE instead.
Аарон Бертран

Тож чи слід змінювати базу даних за замовчуванням щоразу, коли я хочу щось робити з цим користувачем у msdb? У вікні вище, здається, ви можете мати кілька баз даних, пов’язаних із користувачем одночасно ... це не так?
eddie_cat

@eddie_cat Ні, я не бачу причини в цьому випадку змінювати базу даних за замовчуванням, якщо ви не хочете, щоб цей користувач завжди підключався до певної бази даних за замовчуванням.
Аарон Бертран

Створити користувача для входу; правильний синтаксис такий: ------------------------------------------- ------------------------------ ВИКОРИСТОВУЙТЕ [
Ім'я
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.