Bagikan melalui


Izin yang Diperlukan untuk SQL Server Data Tools

Sebelum Anda bisa melakukan tindakan pada database di Visual Studio, Anda harus masuk dengan akun yang memiliki izin tertentu pada database tersebut. Izin khusus yang Anda butuhkan bervariasi berdasarkan tindakan apa yang ingin Anda lakukan. Bagian berikut ini menjelaskan setiap tindakan yang mungkin ingin Anda lakukan dan izin spesifik yang Anda perlukan untuk melakukannya.

Izin untuk Membuat atau Menyebarkan Database

Anda harus memiliki izin berikut untuk membuat atau menyebarkan database.

Tindakan Izin yang Diperlukan
Mengimpor objek dan pengaturan database Anda harus dapat tersambung ke database sumber.

Jika database sumber didasarkan pada SQL Server 2005, Anda juga harus memiliki atau memiliki izin LIHAT DEFINISI pada setiap objek.

Jika database sumber didasarkan pada SQL Server 2008 atau yang lebih baru, Anda juga harus memiliki atau memiliki izin LIHAT DEFINISI pada setiap objek. Login Anda harus memiliki izin VIEW SERVER STATE (untuk kunci enkripsi database).
Mengimpor objek dan pengaturan server Anda harus dapat tersambung ke database master pada server yang ditentukan.

Jika server berjalan SQL Server 2005, Anda harus memiliki izin LIHAT DEFINISI APA PUN di server.

Jika database sumber didasarkan pada SQL Server 2008 atau yang lebih baru, Anda harus memiliki izin TAMPILKAN DEFINISI APA PUN di server. Login Anda harus memiliki izin VIEW SERVER STATE (untuk kunci enkripsi database).
Membuat atau memperbarui proyek database Anda tidak memerlukan izin database apa pun untuk membuat atau mengubah proyek database.
Sebarkan database baru atau sebarkan dengan kumpulan opsi Selalu Buat Ulang Database Anda harus memiliki izin CREATE DATABASE atau menjadi anggota peran dbcreator di server target.

Saat Anda membuat database, Visual Studio tersambung ke database model dan menyalin kontennya. Login awal (misalnya, yourLogin) yang Anda gunakan untuk menyambungkan ke database target harus memiliki izin db_creator dan CONNECT SQL . Login ini harus memiliki pemetaan pengguna pada database model. Jika Anda memiliki izin sysadmin , Anda dapat membuat pemetaan dengan mengeluarkan pernyataan T-SQL berikut:

USE [model] CREATE USER yourUser FROM LOGIN yourLogin

Pengguna (dalam contoh ini, yourUser) harus memiliki izin CONNECT dan VIEW DEFINITION pada database model. Jika Anda memiliki izin sysadmin , Anda dapat memberikan izin ini dengan mengeluarkan pernyataan T-SQL berikut:

USE [model] GRANT CONNECT to yourUser GRANT VIEW DEFINITION TO yourUser

Jika Anda menyebarkan database yang berisi batasan yang tidak disebutkan namanya dan opsi CheckNewContraints diaktifkan (diaktifkan secara default), Anda harus memiliki izin atau penyebaran db_owner atau sysadmin akan gagal. Ini hanya berlaku untuk batasan yang tidak disebutkan namanya. Untuk informasi selengkapnya tentang opsi CheckNewConstraints , lihat Pengaturan Proyek Database.
Menyebarkan pembaruan ke database yang sudah ada Anda harus menjadi pengguna database yang valid. Anda juga harus menjadi anggota peran db_ddladmin , memiliki skema, atau memiliki objek yang ingin Anda buat atau ubah pada database target. Anda memerlukan izin tambahan untuk bekerja dengan konsep yang lebih canggih seperti login atau server tertaut dalam skrip pra-penyebaran atau pasca-penyebaran Anda.

CATATAN: Jika Anda menyebarkan ke database master, Anda juga harus memiliki izin TAMPILKAN DEFINISI APA PUN di server tempat Anda menyebarkan.
Menggunakan rakitan dengan opsi EXTERNAL_ACCESS dalam proyek database Anda harus mengatur properti TRUSTWORTHY untuk proyek database Anda. Anda harus memiliki izin RAKITAN AKSES EKSTERNAL untuk login SQL Server Anda.
Menyebarkan rakitan ke database baru atau yang sudah ada Anda harus menjadi anggota peran sysadmin di server penyebaran target.

Untuk informasi selengkapnya, lihat SQL Server Books Online.

Izin untuk Merefaktor Database

Pemfaktoran ulang database hanya terjadi dalam proyek database. Anda harus memiliki izin untuk menggunakan proyek database. Anda tidak memerlukan izin pada database target hingga Anda menyebarkan perubahan ke database tersebut.

Izin untuk Melakukan Pengujian Unit pada Database SQL Server

Anda harus memiliki izin berikut untuk melakukan pengujian unit pada database.

Tindakan Izin yang Diperlukan
Menjalankan tindakan pengujian Anda harus menggunakan koneksi database konteks eksekusi. Untuk informasi selengkapnya, lihat Gambaran Umum String Koneksi dan Izin.
Menjalankan tindakan pra-pengujian atau pasca-pengujian Anda harus menggunakan koneksi database konteks istimewa. Koneksi database ini memiliki lebih banyak izin daripada koneksi konteks eksekusi.
Jalankan skrip TestInitialize dan TestCleanup Anda harus menggunakan koneksi database konteks istimewa.
Menyebarkan perubahan database sebelum Anda menjalankan pengujian Anda harus menggunakan koneksi database konteks istimewa. Untuk informasi selengkapnya, lihat Cara: Mengonfigurasi SQL Server Eksekusi Pengujian Unit.
Membuat data sebelum Anda menjalankan pengujian Anda harus menggunakan koneksi database konteks istimewa. Untuk informasi selengkapnya, lihat Cara: Mengonfigurasi SQL Server Eksekusi Pengujian Unit.

Izin untuk Menghasilkan Data

Anda harus memiliki izin INSERT dan SELECT pada objek dalam database target untuk menghasilkan data pengujian dengan menggunakan Generator Data. Jika Anda menghapus menyeluruh data sebelum membuat data, Anda juga harus memiliki izin DELETE pada objek dalam database target. Untuk mereset kolom IDENTITY pada tabel, Anda harus memiliki tabel, atau Anda harus menjadi anggota peran db_owner atau db_ddladmin.

Izin untuk Membandingkan Skema dan Data

Anda harus memiliki izin berikut untuk membandingkan skema atau data.

Tindakan Izin yang Diperlukan
Membandingkan skema dua database Anda harus memiliki izin untuk mengimpor objek dan pengaturan dari database seperti yang dijelaskan dalam Izin untuk Membuat atau Menyebarkan Database.
Membandingkan skema database dan proyek database Anda harus memiliki izin untuk mengimpor objek dan pengaturan dari database seperti yang dijelaskan dalam Izin untuk Membuat atau Menyebarkan Database. Anda juga harus membuka proyek database di Visual Studio.
Menulis pembaruan ke database target Anda harus memiliki izin untuk menyebarkan pembaruan ke database target seperti yang dijelaskan dalam Izin untuk Membuat atau Menyebarkan Database.
Membandingkan data dari dua database Selain izin yang perlu Anda bandingkan skema dua database, Anda juga memerlukan izin SELECT pada semua tabel yang ingin Anda bandingkan dan izin TAMPILKAN STATUS DATABASE .

Untuk informasi selengkapnya, lihat SQL Server Books Online.

Izin untuk Menjalankan Editor Transact-SQL

Apa yang dapat Anda lakukan dalam editor Transact-SQL ditentukan oleh konteks eksekusi Anda ke database target.

Izin untuk Proyek Run-time Bahasa Umum SQL Server

Tabel berikut ini mencantumkan izin yang harus Anda terapkan atau debug proyek CLR:

Tindakan Izin yang Diperlukan
Menyebarkan (awal atau bertahap) dari perakitan kumpulan izin yang aman db_DDLAdmin - izin ini memberikan izin CREATE dan ALTER untuk rakitan dan jenis objek yang Anda sebarkan

VIEW DEFINITION tingkat database - diperlukan untuk menyebarkan

CONNECT tingkat database - memberikan kemampuan untuk menyambungkan ke database
Menyebarkan rakitan kumpulan izin external_access db_DDLAdmin - izin ini memberikan izin CREATE dan ALTER untuk rakitan dan jenis objek yang Anda sebarkan

VIEW DEFINITION tingkat database - diperlukan untuk menyebarkan

CONNECT tingkat database - memberikan kemampuan untuk menyambungkan ke database

Selain itu, Anda juga harus memiliki:

Opsi database TERPERCAYA diatur ke AKTIF

Login yang Anda gunakan untuk menyebarkan harus memiliki izin server Rakitan Akses Eksternal.
Menyebarkan rakitan kumpulan izin yang tidak aman db_DDLAdmin - izin ini memberikan izin CREATE dan ALTER untuk rakitan dan jenis objek yang Anda sebarkan

VIEW DEFINITION tingkat database - diperlukan untuk menyebarkan

CONNECT tingkat database - memberikan kemampuan untuk menyambungkan ke database

Selain itu, Anda juga harus memiliki:

Opsi database TERPERCAYA diatur ke AKTIF

Login yang Anda gunakan untuk menyebarkan harus memiliki izin server Assembly tidak aman.
Debug jarak jauh rakitan SQL CLR Anda harus memiliki izin peran tetap sysadmin.

Penting

Dalam semua kasus, pemilik assembly harus menjadi pengguna yang Anda gunakan untuk menyebarkan assembly atau pemilik harus menjadi peran di mana pengguna tersebut adalah anggota. Persyaratan ini juga berlaku untuk rakitan apa pun yang dirujuk oleh assembly yang Anda sebarkan.

Lihat juga

Membuat dan Menentukan Pengujian Unit SQL Server
SQL Server Data Tools