Ошибка полномочий пользователя при доступе “к пользовательской базе данных” экземпляра из ASP.NET

Попробуйте ниже код:

$name           = "Name";
$email      = "Email Address";
$to             = "$name <$email>";
$from           = "XYZ";
$subject        = "TEST SUBJECT";
$mainMessage    = "Hi, here's the file.";
$fileatt        = "./test.pdf";
$fileatttype    = "application/pdf";
$fileattname    = "newname.pdf";
$headers        = "From: $from";
// File
$file           = fopen ( $fileatt, 'rb' );
$data           = fread ( $file, filesize ( $fileatt ) );
fclose ( $file );
// Attach the file
$semi_rand  = md5 ( time () );
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers       .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
$message        = "This is a multi-part message in MIME format.\n\n" . "-{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\n" . "Content-Transfer-Encoding: 7bit\n\n" . $mainMessage . "\n\n";
$data           = chunk_split ( base64_encode ( $data ) );
$message      .= "--{$mime_boundary}\n" . "Content-Type: {$fileatttype};\n" . " name=\"{$fileattname}\"\n" . "Content-Disposition: attachment;\n" . " filename=\"{$fileattname}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "-{$mime_boundary}-\n";
// Send Email
if (mail ( $to, $subject, $message, $headers )) {   
    echo "The email was sent.";
} else {    
    echo "There was an error sending the mail.";
}
26
задан Vivek Dragon 21 December 2012 в 07:01
поделиться

8 ответов

Этот вопрос относится к: & quot; Невозможно открыть базу данных пользователя по умолчанию. Ошибка входа. & Quot; после установки SQL Server Management Studio Express

Судя по всему, в экземпляре пользователя и SQL Server Express есть некоторые интересные проблемы. Возможно, вы захотите взглянуть на http://blogs.msdn.com/b/sqlexpress/archive/2006/11/22/connecting-to-sql-express-user-instances-in-management-studio .aspx . Это, кажется, делает трюк для большинства, у кого есть эта проблема.

3
ответ дан Community 28 November 2019 в 17:27
поделиться

Вы сделали это?

Чтобы настроить SQL Server для интегрированной безопасности Windows

В меню «Пуск» Windows выберите Microsoft SQL Server, а затем выберите «Диспетчер предприятия».

Откройте узел для сервера и разверните узел для базы данных, для которой вы хотите предоставить пользователям разрешения.

Щелкните правой кнопкой мыши узел «Пользователи» и выберите «Новый пользователь базы данных».

В диалоговом окне «Свойства пользователя базы данных» введите домен \ имя пользователя в поле Имя для входа и нажмите кнопку ОК. Кроме того, настройте SQL Server, чтобы разрешить всем пользователям домена доступ к базе данных.

Источник

Итак, в основном убедитесь, что у вас есть «NT AUTHORITY \ NETWORK SERVICE», перечисленные там.

Также, по крайней мере, в SQL 2008, если вы не уверены, что в 2005 году вы также установите его на уровне сервера (Сервер -> Безопасность -> Логины).

2
ответ дан Brian R. Bondy 28 November 2019 в 17:27
поделиться

Если вы используете пользовательский экземпляр, вы все равно подключаетесь как администратор, поэтому, кстати, это не рекомендуется для сценариев хостинга. Проблемы с пермиссиями, которые я обычно получаю, связаны с физическими проблемами самих файлов, а не папок - при отсоединении базы данных наблюдается тенденция к удалению пермисов.

Это может помочь, если вы сможете точно определить, где происходит исключение. Какое действие он пытается выполнить? База данных открыта, прочитана, написана? Также попробуйте другую базу данных (то есть, это конкретная база данных) и попробуйте версию, не являющуюся пользователем; прикрепить базу данных к экземпляру.

1
ответ дан 28 November 2019 в 17:27
поделиться

Первое, что я хотел бы сделать, это запустить filemon (или лучше Process Monitor) , чтобы посмотреть, может ли процесс IIS открыть файл базы данных - для меня это выглядит проблемой безопасности.

Также: убедитесь, что папка ~ / App_Data не доступна только для чтения. Кроме того, проверьте, предоставили ли вы полные разрешения учетной записи «Сетевая служба» для этой же папки.

Возможно, вы захотите запустить IISRESET, чтобы перезапустить IIS и обновить его разрешения.

0
ответ дан Otávio Décio 28 November 2019 в 17:27
поделиться

Когда вы говорите, что у пользователей есть полные права доступа к файлу, у всех пользователей есть полные права в каталоге app_data? Sql потребуется создать файл блокировки вдоль файла MDF.

Также вы уверены, что в экземпляре SQL Express включены пользовательские экземпляры?

0
ответ дан blowdart 28 November 2019 в 17:27
поделиться

Вы пытались запустить aspnet_regsql.exe на сервере, чтобы потенциально вернуть что-то на место (вроде как нужно запускать aspnet_regiis один раз в голубой луне)? Скотт Гу имеет базовый обзор всего процесса, который можно найти здесь здесь .

0
ответ дан Dillie-O 28 November 2019 в 17:27
поделиться

Запускается ли дочерний экземпляр? Когда запрашивается база данных RANU, главный экземпляр (в данном случае. \ SQLEXPRESS) должен создать `` дочерний '' экземпляр, другими словами запустить процесс sqlservr.exe как пользовательский процесс, работающий под учетными данными пользователя, который запросил RANU соединение из экземпляра .SQLEXPRESS. В этом случае экземпляр должен быть запущен как «NETWORK SERVICE».

Чтобы проверить, запущен ли дочерний экземпляр, подключитесь к главному экземпляру (. \ SQLEXPRESS) и проверьте sys.dm_os_child_instances :

SELECT * 
FROM sys.dm_os_child_instances

Если запущен дочерний экземпляр, принадлежащий NETWORK SERVICE, возьмите его instance_pipe_name и подключитесь прямо к дочернему экземпляру:

sqlcmd -S np:\\.\pipe\<child pipe name>\tsql\query

В идеале подключитесь как NETWORK SERVICE (например, из интерактивной консоли cmd, запущенной как NEWTORK) СЛУЖБА, возможно, используя at.exe, чтобы запланировать его на 1 минуту в будущем). Если это сработает, последний шаг - попытаться присоединить MDF с помощью обычной процедуры sp_attach_db.

Смысл этих шагов не в том, чтобы решить проблему, а в том, чтобы точно определить причину сбоя, поскольку полученная вами ошибка является типичной и ... не совсем полезной.

6
ответ дан 28 November 2019 в 17:27
поделиться

Integrated Security = True

Связаны ли входы пользователя в базу данных с учетными записями пользователей на машине? Может быть, вокруг этого есть проблема с отображением?

2
ответ дан 28 November 2019 в 17:27
поделиться