Я относительно новым для SQL и разработчик я учусь от только часть времени, и очень трудно ухватить, к сожалению. Может кто-нибудь помочь мне понять, что не так с Query ниже, и предложить какие-либо исправления, которые могут быть необходимы?
Вы должны дать пользователю в правах вопрос, чтобы выбрать из этих таблиц (ы).
Это не имеет ничего общего с самим запросом (с учетом права доступа)
Тем не менее, вы должны искать в хранимые процедуры и выдача разрешений на что вместо прямого доступа к таблицам.
Ваш пользователь Не должен выберите разрешение на столе
дать либо выберите разрешение или db_readonly пользователю
Доброго времени суток всем! К сожалению мне плоховато дается SQL. В общем то проблема следующая. Есть у меня небольшая табличка. Есть там столбцы "Дата" и "Смена". Дата пишется со временем, дата особого значения не имеет, а вот время да. Есть 3 варианта: XXXX-XX-XX 00:00:00.000, XXXX-XX-XX 08:00:00.000 и XXXX-XX-XX 16:00:00.000. В зависимости от того какое из этих времен стоит должно быть значение 1,2 или 3 в столбике "Смена". Написал я следующий код:
Вытаскиваю тут время из datetime, проверяю его и соответственно присваиваю значение. Если запускать этот код просто как запрос, то значения меняются. А вот если запускать его триггером, то вылезает ошибка:
Строки не были обновлены.
Данные в строке 3 не были зафиксированы. Источник ошибки: .Net SqlClient Data Provider. Сообщение об ошибке: Вложенный запрос вернул больше одного значения. Это запрещено, когда вложенный запрос следует после =, !=, , >= или используется в качестве выражения.
Выполнение данной инструкции было прервано.
Насколько я понял по гуглу, проблема моя в том, что этот триггер будет работать только если в таблице есть одна строка, а если их несколько то запрос возвращает несколько значений и соответственно падает. Далее насколько я понял, проблема решается с помощью команд IN, JOIN или EXISTS, но вот как их применить кокнретно к своему случая я вообще не понимаю. В интернете есть примеры, но по ним к сожалению не получается.
У меня очень странная проблема.
Когда я пытаюсь подключить свою базу данных (расположенную на общем SQL Server) с SQL Server Management Studio 2008/2012. Эта база данных, размещенная компанией для веб-хостинга, я получаю эту очень странную ошибку:
Невозможно подключиться к tango.rdb.superhosting.bg.
Ошибка входа для пользователя ‘database_administrator’. (Поставщик данных Net SqlClient)
Имя сервера: tango.rdb.superhosting.bg
Номер ошибки: 18456
Тяжесть: 14
Штат: 1
Номер строки: 65536
Несколько недель назад все работало идеально, и у меня не было никаких проблем с подключением SQL Server с SQL Server Management Studio 2008.
Когда я столкнулся с этой проблемой, я установил SQL Server Management Studio 2012, и результат будет таким же.
Но с абсолютными одинаковыми учетными данными я могу подключиться к моей базе данных на том же сервере, используя VS2010 или Toad для SQL.
Есть ли у вас какие-либо предложения?
Вероятно, это проблема для осиротевшего пользователя.
"database_administrator" входа может быть:
- В самой базе данных. Просто перейдите к Logins под базой данных в SSMS.
- Или, под Сервером → Логины безопасности.
- Удалить вход, который существует в базе данных
- Добавить вход под уровнем сервера Безопасность
- Предоставить пользователю права на нужную ему базу данных
Существует множество способов решения проблемы осиротевших пользователей, но обычно это то, что я делаю.
Решение:
После установки сервера MS-Sql 2008 сервер Sql разрешен только для проверки подлинности Windows.
Для решения этой проблемы выполните следующие действия и включите пользователя sa в режиме проверки подлинности.
1) В проводнике объектов SQL Server Management Studio щелкните правой кнопкой мыши сервер и выберите "Свойства".
2) На странице "Безопасность" в разделе "Аутентификация сервера" выберите сервер Sql и режим проверки подлинности Windows, а затем нажмите "ОК" .
3) В диалоговом окне "Студия SQL Server Management Studio" нажмите "ОК" , чтобы подтвердить необходимость перезапуска SQL Server.
Чтобы перезапустить SQL Server из SQL Server Management Studio • В обозревателе объектов щелкните правой кнопкой мыши на своем сервере и выберите "Перезагрузка". Если агент SQL Server запущен, его также необходимо перезапустить.
4) Чтобы включить вход в систему sa с помощью Management Studio, в обозревателе объектов разверните "Безопасность", "Развернуть логины", щелкните правой кнопкой мыши sa и выберите "Свойства".
5) На странице "Общие" вам может потребоваться ввести новый пароль и подтвердить пароль для входа в систему sa.
6) На странице "Состояние" в разделе "Вход" нажмите "Включено", а затем нажмите "ОК" .
7), затем снова перезапустите SQL Server из SQL Server Management Studio