Chapter3ProtectingtheData(4):创建和使用应用程序角色
原文出处:http://blog.csdn.net/dba_huangzj/article/details/39927713,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349 未经作者同意,任何人不得以原创形式发布,也不得已用于商业用途,本人不负责任何法律责任。 前一篇:http://b
原文出处:http://blog.csdn.net/dba_huangzj/article/details/39927713,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349未经作者同意,任何人不得以“原创”形式发布,也不得已用于商业用途,本人不负责任何法律责任。
前一篇:http://blog.csdn.net/dba_huangzj/article/details/39639365
前言:
数据库角色用于管理数据库内部的访问和权限。数据库角色成员是能通过客户端软件如SSMS连接SQL Server的数据库用户,但是你可能希望授予某个特殊用户一些特权,但是仅限制于某个应用程序而不是SSMS时,第一个解决方案是使用专用SQL 帐号作为应用程序的登录。但是这个方案的缺点是需要使用SQL Server身份验证,并且不能标识出哪个用户正在连接SQL Server。但是可以使用同一个应用程序登录名,并且使用Windows身份验证,因此能更好地标识应用程序的用户,从而在必要的时候提升权限。
实现:
1. 打开SSMS,在特定数据库的【安全性】→【角色】下,右键【应用程序角色】,选择【新建应用程序角色】:
2. 输入角色名、密码和可选的默认架构,如果为空即为dbo:
3. 在【安全对象】页,可以和数据库角色一样管理应用程序角色的权限:
4.也可以使用T-SQL实现这个操作:
CREATE APPLICATION ROLE MarketingReports WITH PASSWORD = N'A complex password please';
5. 当在程序中使用应用程序角色时,使用sp_setapprole系统存储过程修改会话的上下文:
EXEC sp_setapprole @rolename = 'MarketingReports', @password = N'A complex password please';
执行了这个存储过程之后,当前会话将运行在应用程序角色的上下文下,并且可以通过授权替代原有数据库用户的权限。
原理:
应用程序角色尽可以在代码中使用,并且仅能使用sp_setapprole存储过程,由于密码传输是明文,所以需要使用如SSL来加密传输链接。在切换上下文之后,应用程序角色的上下文会持续到断开服务器连接,如果需要恢复但不断开连接,可以使用sp_unsetapprole:
DECLARE @cookie varbinary(8000); EXEC sp_setapprole @rolename = 'MarketingReports', @password = N'A complex password please', @fCreateCookie = true, @cookie = @cookie OUTPUT; -- do something, then revert : EXEC sp_unsetapprole @cookie;
更多:
下面的C#片段,可以在连接后马上使用应用程序角色:
using (SqlConnection cn = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; cmd.CommandType = CommandType.Text; cmd.CommandText = "EXEC sp_setapprole @rolename = 'MarketingReports', @password = N'A complex password please'"; cn.Open(); int res = cmd.ExecuteNonQuery(); }

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Keupayaan carian teks penuh InnoDB sangat kuat, yang dapat meningkatkan kecekapan pertanyaan pangkalan data dan keupayaan untuk memproses sejumlah besar data teks. 1) InnoDB melaksanakan carian teks penuh melalui pengindeksan terbalik, menyokong pertanyaan carian asas dan maju. 2) Gunakan perlawanan dan terhadap kata kunci untuk mencari, menyokong mod boolean dan carian frasa. 3) Kaedah pengoptimuman termasuk menggunakan teknologi segmentasi perkataan, membina semula indeks dan menyesuaikan saiz cache untuk meningkatkan prestasi dan ketepatan.

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Pengimbasan jadual penuh mungkin lebih cepat dalam MySQL daripada menggunakan indeks. Kes -kes tertentu termasuk: 1) jumlah data adalah kecil; 2) apabila pertanyaan mengembalikan sejumlah besar data; 3) Apabila lajur indeks tidak selektif; 4) Apabila pertanyaan kompleks. Dengan menganalisis rancangan pertanyaan, mengoptimumkan indeks, mengelakkan lebih banyak indeks dan tetap mengekalkan jadual, anda boleh membuat pilihan terbaik dalam aplikasi praktikal.

Ya, MySQL boleh dipasang pada Windows 7, dan walaupun Microsoft telah berhenti menyokong Windows 7, MySQL masih serasi dengannya. Walau bagaimanapun, perkara berikut harus diperhatikan semasa proses pemasangan: Muat turun pemasang MySQL untuk Windows. Pilih versi MySQL yang sesuai (komuniti atau perusahaan). Pilih direktori pemasangan yang sesuai dan set aksara semasa proses pemasangan. Tetapkan kata laluan pengguna root dan simpan dengan betul. Sambung ke pangkalan data untuk ujian. Perhatikan isu keserasian dan keselamatan pada Windows 7, dan disyorkan untuk menaik taraf ke sistem operasi yang disokong.

Perbezaan antara indeks clustered dan indeks bukan cluster adalah: 1. Klustered Index menyimpan baris data dalam struktur indeks, yang sesuai untuk pertanyaan oleh kunci dan julat utama. 2. Indeks Indeks yang tidak berkumpul indeks nilai utama dan penunjuk kepada baris data, dan sesuai untuk pertanyaan lajur utama bukan utama.

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

Artikel membincangkan strategi untuk mengendalikan dataset besar di MySQL, termasuk pembahagian, sharding, pengindeksan, dan pengoptimuman pertanyaan.

Artikel ini membincangkan jadual menjatuhkan di MySQL menggunakan pernyataan Jadual Drop, menekankan langkah berjaga -jaga dan risiko. Ia menyoroti bahawa tindakan itu tidak dapat dipulihkan tanpa sandaran, memperincikan kaedah pemulihan dan bahaya persekitaran pengeluaran yang berpotensi.
