SQL-сервер DB восстанавливается. Вход в систему привел ошибку к сбою

Вот как мне удалось решить проблему`

** java **

final EditText edit = findViewById(R.id.hint);
edit.requestFocus();
edit.setSelection(edit.length()-0);

`

5
задан Shyju 27 January 2009 в 00:38
поделиться

7 ответов

Вероятно, что вход в систему, даже если это extists на новом сервере, не является тем же. Информация логинов хранится с SID, который уникален (обычно) на сервер. Существуют способы передать вход в систему SIDS при необходимости, но можно также просто дать полномочия новому входу в систему/пользователю на новом сервере к объектам в базе данных.

Вот ссылка на передачу логинов. http://support.microsoft.com/kb/246133

3
ответ дан 14 December 2019 в 01:19
поделиться

База данных User отличается от Входа в систему SQL Server. Вход в систему имеет доступ к серверу и, почти во всех случаях, также связан с Учетными записями пользователей, имеющими определенные полномочия для одной или нескольких баз данных. То, что произошло в Вашем случае, - то, что Пользователь все еще присутствует в базе данных (потому что это было там, когда Вы восстановили дб), но не существует - как Вход в систему - на сервере. Таким образом, нет никакого Входа в систему, связанного с ними, так как логины не восстанавливаются с восстановлением DB.

Когда я перемещаю базу данных в новый сервер, я обычно просто отбрасываю Пользователя от восстановленной базы данных и затем создаю Вход в систему. Чтобы сделать это, Вы сначала создадите свой Вход в систему под вкладкой "Security" на уровне DB. Затем, просто используйте страницу "User Mapping" в диалоговом окне установки Входа в систему для автоматического создания связанной Учетной записи пользователя в любой базе данных, для которой это подходит. Это также, где Вы присвоите определенные права.

Однако существует одна помеха: Вы не можете отбрасывать Пользователя от Базы данных. Это происходит, когда Пользователь "владеет" схемой или другими объектами в базе данных. В этом случае необходимо будет или использовать ссылку Palehorse для дальнейших инструкций (я забываю команды первое, что пришло на ум), или необходимо будет сбросить схему/объекты для использования dbo вместо этого.

3
ответ дан 14 December 2019 в 01:19
поделиться

Если это - основанный на SQL Server вход в систему, и Вы восстановили базу данных к ДРУГОМУ SQL Server, чем, где это было первоначально включено, то ответ palehorse является способом передать логины. Если исходный SQL Server не доступен, то можно создать вход в систему SQL Server на новом SQL Server и использовать sp_change_users_login для синхронизации входа в систему и пользователя. Книги Онлайн касаются, как сделать это.

Если бы вход в систему был учетной записью домена Windows, и Вы изменили SQL Server, то необходимо смочь просто добавить вход в систему нового SQL Server и вход в систему, и пользователь будет синхронизировать. SID в SQL Srver для входа в систему на базе Windows прибывает из SID учетной записи в сервере или доменном уровне.

Если Вы восстановили назад к тому же SQL Server, то проверьте, чтобы видеть, допустима ли база данных по умолчанию для входа в систему. Вход в систему хранится в основной базе данных, так восстановление базы данных для приложения не должно было влиять на это. Это - то, если Вы не изменились, вход в систему раньше соединялся недавно.

Иначе, если Вы могли бы отправить больше о том, как Вы входите в SQL Server и точное сообщение об ошибке, которое может помочь диагностировать проблему.

1
ответ дан 14 December 2019 в 01:19
поделиться

При наблюдении ответов на комментарии выше, указывает, что Вы восстановили это с другого сервера. Однако как bnkdev указанная проверка Ваша строка подключения. Возможности - Вы, у любого есть неправильная комбинация идентификатора пользователя/пароля и/или неправильное имя экземпляра... предполагающее, что их назвали по-другому для каждого сервера.

0
ответ дан 14 December 2019 в 01:19
поделиться

Проверьте свою строку подключения. (если его ASP.NET web.config должен иметь это). Проверьте, что вход в систему (имя пользователя/идентификатор пользователя) существует на SQL-сервере и имеет соответствующие полномочия на упомянутой базе данных.

0
ответ дан 14 December 2019 в 01:19
поделиться

Сначала проверьте, есть ли у вас осиротевшие пользователи, с помощью следующей хранимой процедуры:

exec sp_change_users_login @Action='Report'

Затем вы можете переназначить пользователей для входа с помощью:

exec sp_change_users_login @Action='update_one', @UserNamePattern='UserName', @LoginName='LoginName'

(замените UserName и LoginName соответствующими значениями для вашей настройки).

0
ответ дан 14 December 2019 в 01:19
поделиться

У меня сработало:

ALTER USER *userName* WITH LOGIN = *loginName*
ALTER USER *userName* WITH DEFALT_SCHEMA = *schemaName*

(замените UserName и LoginName соответствующими значениями для вашей настройки)

Я думаю, это то же самое, что sp_change_users_login, но dox упоминает, что sp_change_users_login будет удален из будущих версий SQL Server и вместо него будет использоваться ALTER USER

1
ответ дан 14 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: