Шаг 72 - Метод NewPassword

Описание
Изменяет пароль существующей учетной записи пользователя или базы данных с ядром Microsoft Jet (только в рабочей области ядра Microsoft Jet).

объект.NewPassword старыйПароль, новыйПароль

Параметры
объект
Объектная переменная, представляющая объект User или объект Database версии Microsoft Jet 3.x, для которого изменяется значение свойства Password.
старыйПароль
Выражение или переменная типа String, представляющая текущее значение свойства Password объекта User или объекта Database версии Jet 3.x.
новыйПароль
Выражение или переменная типа String, представляющая новое значение свойства Password объекта User или объекта Database версии Jet 3.x.

Замечания
Строки старыйПароль и новыйПароль могут содержать до 14 символов и включать любые символы, за исключением пустого символа ASCII 0. Для удаления пароля следует указать пустую строку ("") в аргументе новыйПароль.
Пароли задаются с учетом регистра.
Если в аргументе объект указано имя объекта User, не являющегося компонентом семейства Users, возникает ошибка. Для того чтобы задать новый пароль, необходимо либо войти в систему под именем пользователя, учетную запись которого требуется изменить, либо принадлежать к группе "Admins" (администраторы). Свойство Password объекта User доступно только для чтения  при этом сами пользователи не могут считывать текущее значение.
Если в аргументе объект указано имя объекта Database версии Microsoft Jet 3.0 или более поздней, данный метод допускает ограниченную форму защиты данных в виде парольной защиты. При создании или открытии файла .mdb версии Microsoft Jet 3.x часть строки подключения Connect может описывать пароль.
Если база данных не имеет определенного пароля, то ядро Microsoft Jet автоматически создает пароль, передавая пустую строку ("") в качестве старого пароля.
Пользователь, потерявший или забывший пароль, не сможет открыть базу данных.

Пример
Следующая программа приглашает ввести новый пароль для пользователя Иван Иванов. Если введена строка длиной от 1 до 14 символов, вызывается метод NewPassword для изменения пароля. Пользователь должен войти в систему как Иван Иванов или как член группы "Admins".

Sub NewPasswordX()

	Dim wrkDefault As Workspace
	Dim usrNew As User
	Dim grpNew As Group
	Dim grpMember As Group
	Dim strPassword As String

	' Определяет стандартную рабочую область.
	Set wrkDefault = DBEngine.Workspaces(0)
	With wrkDefault

		' Создает и добавляет нового пользователя.
		Set usrNew = .CreateUser("Иван Иванов", "abc123DEF456", "Пароль1")
		.Users.Append usrNew
		' Создает и добавляет новую группу.
		Set grpNew = .CreateGroup("Счетоводы", "UVW987xyz654")
		.Groups.Append grpNew

		' Делает нового пользователя членом новой группы.
		Set grpMember = usrNew.CreateGroup("Счетоводы")
		usrNew.Groups.Append grpMember

		' Приглашает ввести новый пароль. Если введена 
		' слишком длинная строка, приглашает повторить.
		Do While True
			strPassword = InputBox("Введите новый пароль:")
			Select Case Len(strPassword)
				Case 1 To 14
					usrNew.NewPassword "Пароль1", strPassword
					MsgBox "Пароль изменен!"
					Exit Do
				Case Is > 14
					MsgBox "Слишком длинный пароль!"
				Case 0
					Exit Do
			End Select
		Loop

		' Удаляет новые объекты User и Group,
		' созданные только для демонстрации.
		.Users.Delete "Иван Иванов"
		.Groups.Delete "Счетоводы"

	End With

End Sub

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 13.03.2002