Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
deepz
62 / 62 / 53
Регистрация: 04.10.2013
Сообщений: 263
1

Редактирование "Имени входа"

15.12.2016, 22:17. Просмотров 1027. Ответов 9
Метки нет (Все метки)

Хочу что бы можно было редактировать логин и пароль. Но не получается, не знаю почему. Ошибка 102(Если @@ERROR
Номер ошибки возвращает),
Так я создаю имя входа, пользователя и "даю" роль пользователю
T-SQL
1
2
3
4
5
6
declare @t nvarchar(4000)
set @t = N'create login  ' + @user + ' with password = ''' + @password + ''''
exec sys.sp_executesql @t
set @t = N'create user [' + @user + '] for login[' + @user + ']'
exec sys.sp_executesql @t
EXEC sp_addrolemember 'User', @user
T-SQL
1
2
3
4
select @t = N'ALTER LOGIN [' + @userlog + ']WITH NAME = ' + @user;                          
exec sys.sp_executesql @t                                       
select @t = N'ALTER LOGIN [' + @userlog + ']WITH PASSWORD = ' + @password + ',old_password = ' + @oldpwd;  
exec sys.sp_executesql @t
Может нужно какие-то галочки в MSSQL поставить?
Да и удаление не работает
T-SQL
1
2
3
4
select @t = 'drop user ' + @username
exec sys.sp_executesql @t
select @t = 'drop login ' + @username
exec sys.sp_executesql @t
Все эти "кусочки" находятся в хранимых процедурах.
MS SQL SEREVER 2012.

Добавлено через 9 минут
T-SQL
1
set @t = N'ALTER LOGIN logname WITH NAME = logname_new';
Если так, то все работает. Может я не правильно скобки ставлю или...

Добавлено через 31 минуту
С изменением логина я разобрался, осталось только изменение пароля...
T-SQL
1
select @t = N'ALTER LOGIN [' + @userlog + ']WITH NAME = ' + '['+@user+']';
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2016, 22:17
Ответы с готовыми решениями:

Ошибка - "не является допустимым именем входа или отсутствует разрешение."
Здравствуйте, при выполнении вот этого скрипта /****** Object: Database...

Триггер входа "ложит" базу
-- Лог подключений пользователей CREATE TABLE Demo_Login_Audit ( LoginName...

Подключение к БД и ошибка "Не удалось выполнить вход. Ошибка входа пользователя"
Здравствуйте. Не получается связать студию и базу. Студия 2010, а бд создана в...

Невозможно материализовать вычисляемый столбец "CHECK_STATE" в таблице "ROBJECT", так как он является недетерм
ALTER TABLE ROBJECT ADD CHECK_STATE AS case when CHECK_DATE is null then...

Подсчитать доли процентов встречи следующих букв: "е", "о", если суммарный процент
подсчитать доли процентов встречи следующих букв: "е", "о", если суммарный...

9
invm
1884 / 1276 / 380
Регистрация: 02.06.2013
Сообщений: 3,221
15.12.2016, 23:22 2
Цитата Сообщение от deepz Посмотреть сообщение
Может я не правильно скобки ставлю или...
Или. Строковые литералы должны быть отквочены апострофами.
1
YuryK
1030 / 847 / 337
Регистрация: 08.12.2016
Сообщений: 3,283
16.12.2016, 00:54 3
у меня в менеджере твой скрипт сработал без проблем и без ошибок. Попробуй его выполнить запросом, не оборачивая в ХП. Ошибка же должна будет проявиться, там где у меня пишет
Command(s) completed successfully.
1
deepz
62 / 62 / 53
Регистрация: 04.10.2013
Сообщений: 263
16.12.2016, 18:06  [ТС] 4
invm, Я походу слишком туп** для этого, который день не выходит, что то с типами что ли, потому что, когда я делаю, теперь уже, так
T-SQL
1
2
3
4
5
declare @user Nvarchar(max)
declare @password nvarchar(max)
select @user = 'Х'
select @password = '1'
EXECUTE sp_addlogin @user, @password;
Все работает

А когда делаю, так то все накрывается медным тазом.
T-SQL
1
2
3
4
5
create procedure sp_myAddlog
@user nvarchar(max), @password nvarchar(max)
as
 EXECUTE sp_addlogin @user, @password;  
go
как быть, подскажите на примере пожалуйста
0
invm
1884 / 1276 / 380
Регистрация: 02.06.2013
Сообщений: 3,221
16.12.2016, 18:21 5
Цитата Сообщение от deepz Посмотреть сообщение
А когда делаю, так то все накрывается медным тазом.
Ошибка какая?
1
deepz
62 / 62 / 53
Регистрация: 04.10.2013
Сообщений: 263
16.12.2016, 18:41  [ТС] 6
@@ERROR = 15002. Полностью не могу отследить.

Добавлено через 10 минут
похожу дела, выше указанное слово полностью характеризует меня. Теперь такой вопрос. Я могу добавлять имена входов и прочее только, залогинившись под sa?
0
invm
1884 / 1276 / 380
Регистрация: 02.06.2013
Сообщений: 3,221
16.12.2016, 19:31 7
Цитата Сообщение от deepz Посмотреть сообщение
Я могу добавлять имена входов и прочее только, залогинившись под sa?
Не обязательно. Нужно иметь разрешение alter any login.
Вы что пытаетесь сделать? Дать возможность бесправному пользователю создавать логины?
1
deepz
62 / 62 / 53
Регистрация: 04.10.2013
Сообщений: 263
16.12.2016, 19:44  [ТС] 8
invm, в общем то что я хотел можно и не делать оказывается, у меня теперь с другим проблема, тема та же самая
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
declare @user Nvarchar(max)
declare @password nvarchar(max)
declare @t varchar(max)
declare @Role nvarchar(max)
select @user = 'Х'
select @password = '1'
select @Role = 'User'
 
    set @t = 'CREATE LOGIN ' + @user + ' WITH PASSWORD = ''' + @password + ''', CHECK_POLICY = OFF 
                CREATE USER ' + @user + ' FOR LOGIN ' + @user + '
                EXEC sp_addrolemember ' + @Role + ', ' + @user; 
             EXECUTE (@t);
Сообщение 156, уровень 15, состояние 1, строка 3
Неправильный синтаксис около ключевого слова "User".
Я так долго сижу уже и не вижу где ошибка
0
invm
1884 / 1276 / 380
Регистрация: 02.06.2013
Сообщений: 3,221
16.12.2016, 20:08 9
Лучший ответ Сообщение было отмечено deepz как решение

Решение

Вы посмотрите, что получается в @t.

Добавлено через 1 минуту
Предполагаю, что опять неотквоченные строковые литералы в EXEC sp_addrolemember
1
deepz
62 / 62 / 53
Регистрация: 04.10.2013
Сообщений: 263
16.12.2016, 20:10  [ТС] 10
T-SQL
1
'EXEC sp_addrolemember ' + @Role + ', ' + @user;
В общем я дошел до того, что ошибка здесь

Добавлено через 1 минуту
Алилуя
T-SQL
1
''' + @Role + '''
Добавлено через 11 секунд
спасибо за помощь
0
16.12.2016, 20:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2016, 20:10

Импорт из Excel - Есть ли разница что выбирать в "Назначение" и в "Имя сервера"?
Помогите, пожалуйста, чайнику. Поставил MS SQL Server захожу в импорт и...

Исправить запрос на выборку по суммарным данным("Неправильный синтаксис "AS"")
Задание: Выбрать таблицу, в которой за первый квартал 1997г. для каждого...

Сделать выборку из таблицы имен, которые начинаются с букв от "А" до "В"
как сделать выборку имен из таблицы которые начинаются с букв от "А" до "В". ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru