РИС. 11.7. Диалоговое окно для низкоуровневого указания разрешений пользователя
9. Убедитесь в том, что выбран переключатель List all objects (Перечислить все объекты), и прокрутите список до конца, чтобы увидеть все таблицы из базы данных Novelty. Установите флажки всех таблиц в столбце SELECT (рис. 11.8). Флажок означает разрешение на выборку данных из данной таблицы, а крестик — запрет на выборку данных.
РИС. 11.8. Диалоговое окно для установления разрешений на основные операции с таблицами
10. На этом этапе установите также флажок в столбце INSERT для таблицы tblOrder, как показано на рис. 11.9. Это позволит покупателям создавать заказы.
РИС. 11.9. Установка разрешения на операции вставки в таблицу tblOrder
После выполнения этих действий для закрытия этого и двух других диалоговых окон щелкните на кнопке OK в каждом из них. После этого в списке учетных записей Logins в окне программы SQL Server Enterprise Manager появится пользователь ASPNEТ (рис. 11.10).
Рис. 11.10. Список учетных записей Logins в окне программы SQL Server Enterprise Manager
(Учтите, что в данном случае на рис. 11.10 показана учетная запись ASPNET, созданная на компьютере PRICEKW2KLT2 автора книги. — Прим. ред.)
Итак, учетная запись ASPNET включена в список учетных записей SQL Server. В следующем разделе показано, как ее использовать для подключения к базе данных без указания в строке подключения какой-либо информации об имени и пароле учетной записи.
Применение параметра TRUSTED_CONNECTION
Продемонстрируем теперь применение параметра TRUSTED_CONNECTION для подключения к базе данных и выполнения простого запроса с помощью технологии ASP.NET. Запустите интегрированную среду разработки приложений Visual Studio .NET и создайте новый проект ASP.NET Web Application. Для этого в диалоговом окне New Project (Новый проект) выберите тип проекта Visual Basic Project в области Project Types (Типы проектов) и шаблон ASP.NET Web Application (Приложение на основе ASP.NET Web-форм) в области Templates (Шаблоны).
Переименуйте автоматически созданный файл WebForm1.aspx и укажите для него новое имя default.aspx, щелкнув на имени правой кнопкой мыши и выбрав команду Rename (Переименовать) в контекстном меню, а затем отредактировав выделенное имя. Эта Web-форма будет используемой по умолчанию Web-страницей данного каталога. (Впоследствии в эту Web-форму будут постепенно вноситься другие изменения.)
Для начала рассмотрим код в листинге 11.1 с очень простым примером подключения к базе данных с помощью учетной записи ASPNET, выборки данных с помощью запроса на основе команды SELECT и отображения результатов запроса на Web-странице.
ЛИСТИНГ 11.1. Вспомогательный КОД Web-формы default.aspx.vbImports System.Data
Imports System.Data.SqlClient
Public Class WebForm1
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
' Этот вызов организован мастером Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Init
' CODEGEN: Вызов этого метода организован мастером
' Web Form Designer.
' He редактируйте этот код вручную с помощью окна редактирования.
InitializeComponent()
End Sub
#End Region
Dim connString As String
Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' Указание строки подключения.
connString = "server=(local);database=Novelty; TRUSTED_CONNECTION=Yes"
' Это вся информация, которая нам нужна
' для подключения к базе данных. Кроме того, если
' кто-то сможет получить доступ к коду этого файла,
' он не сможет использовать полученные сведения
' для регистрации входа в базу данных.
' Извлечение системной ссылки на указанную строку подключения.
' Это позволяет .NET проверить наличие данной строки
' в куче. Если её нет, то создаётся её экземпляр в
' оперативной памяти и возвращается ссылка
' на нее, а если есть, то возвращается ссылка на нее.
String.Intern(connString)
ShowCustomers()
End Sub
Private Sub ShowCustomers()
' Это простой пример использования функции,
' которая извлекает данные из таблицы tblCustomer
' и отображает их.
' Инициализация объекта подключения строкой
' подключения.
Dim conn As New SqlConnection(connString)
' Затем инициализация объекта-команды
' строкой выполняемой команды SQL.
Dim cmd As New SqlCommand("SELECT * FROM tblCustomer", conn)
conn.Open()
Dim dReader As SqlDataReader = _
cmd.ExecuteReader(CommandBehavior.CloseConnection)