Fungsi SetSecurityInfo (aclapi.h)

Fungsi SetSecurityInfo menetapkan informasi keamanan yang ditentukan dalam deskriptor keamanan objek tertentu. Pemanggil mengidentifikasi objek dengan handel.

Untuk mengatur SACL objek, pemanggil harus mengaktifkan hak istimewa SE_SECURITY_NAME .

Sintaks

DWORD SetSecurityInfo(
  [in]           HANDLE               handle,
  [in]           SE_OBJECT_TYPE       ObjectType,
  [in]           SECURITY_INFORMATION SecurityInfo,
  [in, optional] PSID                 psidOwner,
  [in, optional] PSID                 psidGroup,
  [in, optional] PACL                 pDacl,
  [in, optional] PACL                 pSacl
);

Parameter

[in] handle

Handel ke objek untuk mengatur informasi keamanan.

[in] ObjectType

Anggota enumerasi SE_OBJECT_TYPE yang menunjukkan jenis objek yang diidentifikasi oleh parameter handel .

[in] SecurityInfo

Sekumpulan bendera bit yang menunjukkan jenis informasi keamanan yang akan diatur. Parameter ini dapat menjadi kombinasi dari bendera bit SECURITY_INFORMATION .

[in, optional] psidOwner

Penunjuk ke SID yang mengidentifikasi pemilik objek. SID harus salah satu yang dapat ditetapkan sebagai SID pemilik deskriptor keamanan. Parameter SecurityInfo harus menyertakan bendera OWNER_SECURITY_INFORMATION. Parameter ini bisa NULL jika Anda tidak mengatur SID pemilik.

[in, optional] psidGroup

Penunjuk ke SID yang mengidentifikasi grup utama objek. Parameter SecurityInfo harus menyertakan bendera GROUP_SECURITY_INFORMATION. Parameter ini bisa NULL jika Anda tidak mengatur SID grup utama.

[in, optional] pDacl

Penunjuk ke DACL baru untuk objek . Parameter ini diabaikan kecuali nilai parameter SecurityInfo menyertakan bendera DACL_SECURITY_INFORMATION . Jika nilai parameter SecurityInfo menyertakan bendera DACL_SECURITY_INFORMATION dan nilai parameter ini diatur ke NULL, akses penuh ke objek diberikan kepada semua orang. Untuk informasi tentang DACL null , lihat Membuat DACL.

[in, optional] pSacl

Penunjuk ke SACL baru untuk objek . Parameter SecurityInfo harus menyertakan salah satu bendera berikut: SACL_SECURITY_INFORMATION, LABEL_SECURITY_INFORMATION, ATTRIBUTE_SECURITY_INFORMATION, SCOPE_SECURITY_INFORMATION, atau BACKUP_SECURITY_INFORMATION. Jika mengatur SACL_SECURITY_INFORMATION atau SCOPE_SECURITY_INFORMATION, pemanggil harus mengaktifkan hak istimewa SE_SECURITY_NAME. Parameter ini bisa NULL jika Anda tidak mengatur SACL.

Nilai kembali

Jika fungsi berhasil, fungsi akan mengembalikan ERROR_SUCCESS.

Jika fungsi gagal, fungsi mengembalikan kode kesalahan bukan nol yang ditentukan dalam WinError.h.

Keterangan

Jika Anda mengatur daftar kontrol akses diskresi (DACL) atau elemen apa pun dalam daftar kontrol akses sistem (SACL) objek, sistem secara otomatis menyebarluaskan entri kontrol akses (ACE) yang dapat diwariskan ke objek turunan yang ada, sesuai dengan aturan pewarisan ACE.

Anda dapat menggunakan fungsi SetSecurityInfo dengan jenis objek berikut:

  • File atau direktori lokal atau jarak jauh pada NTFS
  • Saluran bernama
  • Printer lokal atau jarak jauh
  • Layanan Windows lokal atau jarak jauh
  • Berbagi jaringan
  • Kunci registri
  • Semaphores, peristiwa, mutex, dan timer yang dapat diantrekan
  • Proses, utas, pekerjaan, dan objek pemetaan file
  • Stasiun jendela dan desktop
  • Objek layanan direktori

Fungsi SetSecurityInfo tidak menyusun ulang ACE yang diizinkan akses atau ditolak akses berdasarkan urutan yang disukai. Saat menyebarkan ACE yang dapat diwariskan ke objek anak yang ada, SetSecurityInfo menempatkan ACE yang diwariskan secara berurutan setelah semua ACE yang tidak diwariskan di DACL objek anak.

Catatan Jika berbagi akses ke anak-anak objek tidak tersedia, fungsi ini tidak akan menyebarluaskan ACE yang tidak terlindungi ke anak-anak. Misalnya, jika direktori dibuka dengan akses eksklusif, sistem operasi tidak akan menyebarkan ACE yang tidak terlindungi ke subdirektori atau file direktori tersebut ketika keamanan pada direktori diubah.
 
Peringatan Jika handel yang disediakan dibuka dengan nilai ACCESS_MASKMAXIMUM_ALLOWED, maka fungsi SetSecurityInfo tidak akan menyebarluaskan ACE ke anak-anak.
 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header aclapi.h
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

ACL

Access Control

Fungsi Access Control Dasar

GetNamedSecurityInfo

GetSecurityInfo

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SE_OBJECT_TYPE

SID

SetNamedSecurityInfo