Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 13.08.2016
Сообщений: 19

Скрипт для подключения пользователей к базе

25.05.2019, 04:33. Показов 3657. Ответов 5

Студворк — интернет-сервис помощи студентам
Здравствуйте, периодически требуется добавлять пользователей к базам данных, решил написать скрипт в котором имя учётной записи помещается в переменную. Т.е. хотел по мере необходимости в переменную помещать имя нового пользователя, сам скрипт (название домена и имя учетки изменены):

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
     USE [master];
     GO
 
     DECLARE @tmp nvarchar(10);
     set @tmp = N 'имя_учётной_записи';
 
     CREATE LOGIN [DOMEN\@tmp] FROM WINDOWS WITH DEFAULT_DATABASE=[master];
     GO
 
     use [bd];
     GO
 
     CREATE USER [@tmp] FOR LOGIN [DOMEN\@tmp];
     GO
 
     USE [BD];
     GO
 
     ALTER USER [@tmp] WITH DEFAULT_SCHEMA=[@tmp];
     GO
При выполнении скрипта выходят ошибки:
- Неправильный синтаксис около конструкции "имя_учётной_записи". (Имя учётки изменено.)
- Пользователь или группа Windows NT "DOMEN\@tmp" не найдены. Еще раз проверьте имя.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.05.2019, 04:33
Ответы с готовыми решениями:

Ошибка подключения пользователей к базе при загрузке проекта
Создала приложение баз данных, которое берет блок данных в действующей базе на удаленном SQL-сервере (только Select) и далее работает с...

DLL для подключения к базе
Добрый вечер Проблема такая Создал проект, в котором подключение к базе и программа были в одном файле (в базе ACCESS также хранятся...

Нужен ли на MS SERVER 2008 сервер VPN для подключения удаленных пользователей 1С?
Ситуация: Windows Server 2008, сервер 1С, пользователи 1С в локалке. Есть удаленные два компа, которым необходимо работать в этой же базе...

5
5966 / 4542 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
25.05.2019, 19:56
почему то так нельзя делать

приходится делать так

T-SQL
1
2
3
4
5
6
declare @sql nvarchar(max)
DECLARE @tmp nvarchar(10);
set @tmp = N 'имя_учётной_записи';
set @sql = 'CREATE LOGIN [DOMEN\'+@tmp+'] FROM WINDOWS WITH DEFAULT_DATABASE=[master];      GO'
 
execsql @sql
1
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
25.05.2019, 20:21
Лучший ответ Сообщение было отмечено pushtun как решение

Решение

Включить в SSMS SQLCMD Mode
Тогда скрипт будет выглядеть так:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
USE [master];
GO
 
:setvar tmp имя_учётной_записи
 
CREATE LOGIN [DOMEN\$(tmp)] FROM WINDOWS WITH DEFAULT_DATABASE=[master];
GO
 
use [bd];
GO
 
CREATE USER [$(tmp)] FOR LOGIN [DOMEN\$(tmp)];
GO
 
USE [BD];
GO
 
ALTER USER [$(tmp)] WITH DEFAULT_SCHEMA=[$(tmp)];
GO
1
1 / 1 / 0
Регистрация: 13.08.2016
Сообщений: 19
26.05.2019, 20:09  [ТС]
Спасибо ребят, второй вариант с SQLCMD Mode сработал, а у первого выдаёт:

Сообщение 102, уровень 15, состояние 1, строка 6
Неправильный синтаксис около конструкции "имяУчётки".
Сообщение 102, уровень 15, состояние 1, строка 9
Неправильный синтаксис около конструкции "execsql".


Прям самый последний вопрос - я на SSMS 17 пробовал, а на 2008 R2 SQLCMD Mode работает?
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
26.05.2019, 20:55
Цитата Сообщение от pushtun Посмотреть сообщение
на 2008 R2 SQLCMD Mode работает?
Работает. В любой студии, начиная с 2005-й
0
5966 / 4542 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
26.05.2019, 22:37
pushtun, ну так надо ошибки то исправить и все будет работать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.05.2019, 22:37
Помогаю со студенческими работами здесь

Поток для проверки подключения к базе данных
Имеется код потока: unit Unit14; interface uses Classes,Windows, Messages, SysUtils, Variants, Graphics, Controls,...

Безопасное хранение пaроля для подключения к базе данных
Здравствуйте! Пытаюсь написать cms, и напоролся на проблему безопасности. Логин и пароль лежит в db.php, доступ ограничен вообще для всех...

Скрипт входа для пользователей домена
Доброго времени суток. Столкнулся с задачей на VBS: нужно написать скрипт который запускает программу в зависимости от принадлежности...

Скрипт для накрутки виртуальных пользователей
Здравствуйте! Нужна ваша помощь.... У меня есть онлайн радио. Для того, чтобы приходили реальные слушатели, мне нужно накрутить...

Ошибка чтения файла конфигурации (для подключения к базе данных)
Привет всем. Компьютер для работы с флюорографом. Выходит данная ошибка. Как и куда копать? Спасибо. Если я не в том месте создал тему,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru