Настройка управления правами на доступ к данным в Visio
Узнайте, как использовать управление правами на доступ к данным (IRM) с документами Visio.
Обзор
Используйте поддержку IRM для Visio, чтобы программными средствами:
Защита документа Visio от несанкционированного доступа.
Управление отдельным и групповым доступом к документу Visio, защищенному IRM.
Изменение разрешений IRM для документа Visio.
Требования
Чтобы использовать IRM для Visio, необходимо установить следующее:
Защита документа Visio
Чтобы защитить активный документ, используйте метод Permission.Add . Чтобы проверить, защищен ли документ, используйте свойство Enabled объекта Permission .
Чтобы удалить защиту активного документа, используйте метод Permission.RemoveAll или метод UserPermission.Remove для каждого пользователя, имеющего доступ.
Управление доступом пользователей к документу, защищенному IRM
Чтобы предоставить разрешения на активный документ указанному пользователю, используйте метод Permission.Add . Свойство Permission может быть одной или комбинацией констант msoPermission из следующей таблицы.
константа msoPermission | Смысл |
---|---|
msoPermissionView | Доступ на чтение |
msoPermissionRead | Доступ на чтение |
msoPermissionEdit | Изменение доступа |
msoPermission Save | Сохранение доступа |
msoPermissionExtract | Копирование доступа, если у пользователя также есть доступ на чтение |
msoPermissionChange | Доступ для просмотра, редактирования, копирования и сохранения, но не для печати документа. Это эквивалентно msoPermissionView + msoPermissionEdit + msoPermissionSave + msoPermissionExtract. |
msoPermissionPrint | Доступ к печати |
msoPermissionObjModel | Пользователь может получить доступ к документу программным способом. Это разрешение требуется всем пользователям для работы с защищенным документом или для проверки разрешений на документ. |
msoPermissionFullControl | Полный контроль над документом. Включены все разрешения. |
Чтобы проверить разрешения для пользователя, используйте свойство UserPermission.Permission .
Чтобы применить разрешения с помощью политики администрирования, используйте метод Permission.ApplyPolicy . Используйте свойства PermissionFromPolicy, PolicyName и PolicyDescription для возврата сведений о политике.
Чтобы удалить разрешения для указанного пользователя, используйте метод UserPermission.Remove . Чтобы снять все ограничения активного документа, используйте метод Permission.RemoveAll .
Доступ к документу, защищенному IRM
Для доступа к защищенному документу пользователю требуется следующее:
msoPermissionObjModel
Конкретные разрешения IRM для любого используемого метода или события.
В следующих таблицах показаны необходимые разрешения. Используйте соответствующие константы msoPermission из предыдущего раздела. Почти для всех API-интерфейсов пользователю требуется разрешение Edit (msoPermissionEdit). Обратите внимание, что если у пользователя есть полный доступ (msoPermissionFullControl), все API включены.
Разрешения IRM для методов
Метод | Требуемое разрешение |
---|---|
Copy | Чтение и копирование |
Copy (объект Selection ) | Чтение и копирование |
Copy (объект Shape ) | Чтение и копирование |
GetFilterCommands | Чтение |
GetFilterObjects | Чтение |
GetFilterSRC | Чтение |
GetFormulas[U] | Чтение |
GetNames[U] | Чтение |
GetPolylineData | Чтение |
GetResults | Чтение |
GetViewRect | Чтение |
Открыть (коллекция Документов ) | Чтение |
OpenEx | Чтение |
Чтение и печать | |
PrintTile | Чтение и печать |
Для всех остальных событий, не перечисленных здесь | Редактирование |
Разрешения IRM для событий
Событие | Требуемое разрешение |
---|---|
DocumentOpened | Чтение |
WindowOpened | Чтение |
WindowTurnedToPage | Чтение |
Для всех остальных событий, не перечисленных здесь | Редактирование |
Примеры
Пример применения разрешения пользователя
В этом примере пользователю предоставляется сочетание разрешений на чтение и редактирование для активного документа и устанавливается дата окончания срока действия для этих разрешений.
Dim objPermission As Office.Permission
Dim objUserPerm As Office.UserPermission
Set objPermission = ActiveDocument.Permission
Set objUserPerm = objPermission.Add( _
"<user>@<domain>.com", _
msoPermissionRead + msoPermissionEdit, #12/31/2016#)
MsgBox "Permissions added for " & _
objUserPerm.UserId, _
vbInformation + vbOKOnly, _
"Permissions Added"
Set objUserPerm = Nothing
Пример применения политики разрешений администратора
В этом примере проверяется, защищен ли активный документ, и, если это не так, он защищает документ и применяет политику административных разрешений.
Dim irmPermission As Office.Permission
Set irmPermission = ActiveDocument.Permission
Dim strIRMInfo As String
Select Case irmPermission.Enabled
Case True
strIRMInfo = "Permissions are already restricted on this document."
Case False
With irmPermission
.Enabled = True
.ApplyPolicy ("\\server\share\permissionpolicy.xml")
End With
strIRMInfo = "Permissions are now restricted on this document " & _
vbCrLf & _
" and the permission policy has been applied."
End Select
MsgBox strIRMInfo, vbInformation + vbOKOnly, "IRM Information"
Set irmPermission = Nothing
Пример списка разрешенных пользователей
В этом примере проверяется, защищен ли активный документ, и, если это так, перечисляются пользователи и назначенные им разрешения.
Dim irmPermission As Office.Permission
Dim irmUserPerm As Office.UserPermission
Dim strIRMInfo As String
Set irmPermission = ActiveDocument.Permission
If irmPermission.Enabled Then
For Each irmUserPerm In irmPermission
strIRMInfo = strIRMInfo & irmUserPerm.UserId & vbCrLf & _
" - Permissions: " & irmUserPerm.Permission & vbCrLf & _
" - Expiration Date: " & irmUserPerm.ExpirationDate & vbCrLf
Next
MsgBox strIRMInfo, _
vbInformation + vbOKOnly, "IRM Information"
Else
MsgBox "This document is not restricted.", _
vbInformation + vbOKOnly, "IRM Information"
End If
Set irmUserPerm = Nothing
Set irmPermission = Nothing
Пример удаления разрешений пользователя
В этом примере удаляются разрешения второго пользователя на активный документ из коллекции Permission документа.
Dim irmPermission As Office.Permission
Dim irmUserPerm As Office.UserPermission
Set irmPermission = ActiveDocument.Permission
Set irmUserPerm = irmPermission.Item(2)
irmUserPerm.Remove
MsgBox "Permission removed.", _
vbInformation + vbOKOnly, "IRM Information"
Set irmUserPerm = Nothing
Set irmPermission = Nothing
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по