sys.dm_db_uncontained_entities (T-SQL)

Berlaku untuk:SQL Server

Memperlihatkan objek yang tidak terkontainer yang digunakan dalam database. Objek yang tidak dikontainasi adalah objek yang melewati batas database dalam database yang terkandung. Tampilan ini dapat diakses dari database mandiri dan database yang tidak terkandung. Jika sys.dm_db_uncontained_entities kosong, database Anda tidak menggunakan entitas yang tidak dikontainer.

Jika modul melewati batas database lebih dari sekali, hanya persimpangan pertama yang ditemukan yang dilaporkan.

Nama kolom Jenis Deskripsi
kelas int 1 = Objek atau kolom (termasuk modul, XP, tampilan, sinonim, dan tabel).

4 = Prinsipal Database

5 = Rakitan

6 = Jenis

7 = Indeks (Indeks Teks lengkap)

12 = Pemicu DDL Database

19 = Rute

30 = Spesifikasi Audit
class_desc nvarchar(120) Deskripsi kelas entitas. Salah satu hal berikut untuk mencocokkan kelas:

OBJECT_OR_COLUMN

DATABASE_PRINCIPAL

MAJELIS

KETIK

INDEX

DATABASE_DDL_TRIGGER

RUTE

AUDIT_SPECIFICATION
major_id int ID entitas.

Jika kelas = 1, maka object_id

Jika kelas = 4, maka sys.database_principals.principal_id.

Jika kelas = 5, maka sys.assemblies.assembly_id.

Jika kelas = 6, maka sys.types.user_type_id.

Jika kelas = 7, maka sys.indexes.index_id.

Jika kelas = 12, maka sys.triggers.object_id.

Jika kelas = 19, maka sys.routes.route_id.

Jika kelas = 30, maka sys. database_audit_specifications.database_specification_id.
statement_line_number int Jika kelas adalah modul, mengembalikan nomor baris tempat penggunaan yang tidak dipastikan berada. Jika tidak, nilainya null.
statement_ offset_begin int Jika kelas adalah modul, menunjukkan, dalam byte, dimulai dengan 0, posisi awal di mana penggunaan yang tidak dipastikan dimulai. Jika tidak, nilai yang dikembalikan null.
statement_ offset_end int Jika kelas adalah modul, menunjukkan, dalam byte, dimulai dengan 0, posisi akhir penggunaan yang tidak dikontainer. Nilai -1 menunjukkan akhir modul. Jika tidak, nilai yang dikembalikan null.
statement_type nvarchar(512) Jenis pernyataan.
nama feature_ nvarchar(256) Mengembalikan nama eksternal objek.
feature_type_name nvarchar(256) Mengembalikan jenis fitur.

Keterangan

sys.dm_db_uncontained_entities menunjukkan entitas tersebut yang berpotensi melewati batas database. Ini akan mengembalikan entitas pengguna apa pun yang berpotensi menggunakan objek di luar database.

Jenis fitur berikut dilaporkan.

  • Perilaku penahanan tidak diketahui (resolusi SQL dinamis atau nama yang ditangguhkan)

  • Perintah DBCC

  • Prosedur tersimpan sistem

  • Fungsi skalar sistem

  • Fungsi bernilai tabel sistem

  • Fungsi bawaan sistem

Keamanan

Izin

sys.dm_db_uncontained_entities hanya mengembalikan objek yang penggunanya memiliki beberapa jenis izin. Untuk sepenuhnya mengevaluasi penahanan database, fungsi ini harus digunakan oleh pengguna dengan hak istimewa tinggi seperti anggota peran server tetap sysadmin atau peran db_owner .

Contoh

Contoh berikut membuat prosedur bernama P1, lalu kueri sys.dm_db_uncontained_entities. Kueri melaporkan bahwa P1 menggunakan sys.endpoints yang berada di luar database.

CREATE DATABASE Test;  
GO  
  
USE Test;  
GO  
CREATE PROC P1  
AS   
SELECT * FROM sys.endpoints ;  
GO  
SELECT SO.name, UE.* FROM sys.dm_db_uncontained_entities AS UE  
LEFT JOIN sys.objects AS SO  
    ON UE.major_id = SO.object_id;  

Lihat Juga

Database Terkandung