Layanan Pelaporan dan Peran Aplikasi

25

Poster pertama, lama bersembunyi di sini. Apa cara terbaik untuk mengaktifkan peran aplikasi dalam laporan?

Saya sudah mencoba berbagai hal dan sejauh ini satu-satunya metode yang berfungsi adalah menyematkan panggilan ke peran aplikasi seperti: -

EXEC sp_setapprole 'REPORTZ', 's3cr3t';
select *
from mytable
where ID < 10000

di Dataset. Ini berhasil ... tetapi tidak sesuai dengan keinginan saya (tentu saja tidak dalam bentuk yang ingin saya masukkan ke dalam lingkungan produksi).

Saya lebih suka jika entah bagaimana saya bisa 'membajak' atau 'menyuntikkan' jalur aktivasi peran aplikasi saat runtime baik melalui majelis khusus atau mungkin semacam 'pengait server' di Layanan Pelaporan (yang dalam kedua kasus, saya tidak tahu caranya )

Sangat dihargai atas waktu + perhatian Anda.

YS.

YS.
sumber
2
Anda dapat mulai dari sini msdn.microsoft.com/en-us/library/aa237582(v=SQL.80).aspx untuk memahami cara memperluas Layanan Pelaporan (menyuntikkan kode yang menetapkan peran aplikasi), tetapi saya tidak akan mengambil komentar ini sebagai jawaban, tidak yakin ini benar-benar cara termudah dan tidak dapat dilakukan dalam konfigurasi
tergantung pada bagaimana orang mengakses laporan ini, Anda dapat menanamkan kredensial Pengguna Laporan dalam kumpulan data dan kemudian mengatur sisi masuk server sql sehingga memiliki hak istimewa yang terbatas.
DForck42
Hai DForck - seluruh sistem telah didasarkan sekitar menyetujui dan kami ingin tetap seperti itu.

Jawaban:

3

Saya melihat beberapa cara ini bisa dilakukan tanpa menggunakan sesuatu yang terlalu mewah.

  1. Yang pertama adalah menggunakan otentikasi terintegrasi Windows dan memberikan izin kepada grup yang mewakili pengguna aplikasi.

  2. Anda dapat membuat peran yang dapat diberikan, dan kemudian gunakan set roleuntuk mengambil peran dalam kode Anda di db. Dengan cara ini Anda tidak memasukkan kata sandi dan Anda mengautentikasi aplikasi terlebih dahulu.

Keuntungan yang pertama adalah mudah dikelola, dalam domain AD, yang memiliki akses ke aplikasi. Manajemen akan relatif sederhana. Kerugian utama adalah bahwa itu akan terbatas pada kasus-kasus di mana auth terintegrasi terintegrasi, dan Anda harus mendukung auth terintegrasi sepanjang jalan. Selain itu setiap hop akhirnya membutuhkan otentikasi 3 arah (antara server, klien, dan KDC).

Keuntungan dari yang kedua adalah mungkin paling mudah untuk masuk, dan tidak memaparkan info keamanan melalui jaringan, dan itu bekerja dalam kasus di mana auth terintegrasi tidak akan berfungsi dengan baik.

Saya akan mencoba kedua pendekatan itu sebelum mencoba memperluas layanan pelaporan. Seperti komentar yang disarankan, http://msdn.microsoft.com/en-us/library/aa237582%28v=SQL.80%29.aspx mungkin membantu dan dapat berfungsi, tetapi secara konseptual lebih kompleks daripada mencoba mengelola peran langsung.

Chris Travers
sumber