原文出处:http://blog.csdn.net/dba_huangzj/article/details/39003679,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349 未经作者同意,任何人不得以原创形式发布,也不得已用于商业用途,本人不负责任何法律责任。 前一篇:http://b
原文出处:http://blog.csdn.net/dba_huangzj/article/details/39003679,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349未经作者同意,任何人不得以“原创”形式发布,也不得已用于商业用途,本人不负责任何法律责任。
前一篇:http://blog.csdn.net/dba_huangzj/article/details/38944121
前言:
在SQL Server 2005之前,所有服务器和数据库元数据都是所有人可见的。当基于网银的系统把SQL Server实例共享给客户时,有可能可以看到其他用户的信息。从2005开始,可以通过控制权限来限制登录名或用户查看不必要的元数据。
实现:
如果你需要把数据库对所有登录名隐藏,可以移除public角色上的VIEW ANY DATABASE权限:
USE master; GO REVOKE VIEW ANY DATABASE TO public;
允许某些帐号查看所有数据库时,可以创建一个用户自定义服务器角色:
USE master; CREATE SERVER ROLE [DatabaseViewer]; GO GRANT VIEW ANY DATABASE TO [DatabaseViewer]; ALTER SERVER ROLE [DatabaseViewer] ADD MEMBER [Fred];
注意,master和tempdcb总是对所有登录可见。
你不能选择性地对某些数据库设置可见,一个登录要么能从【对象资源管理器】中看到所有数据库,要么所有库都不能被看到。如果一个登录名被授予VIEW ANY DATABASE服务器权限,那么可以在【对象资源管理器】中看到服务器所有数据库,或者从sys.databases 目录视图中查询所有的数据库。如果登录名没有这个权限但是映射到某个数据库的用户中,那么它依旧不能看到所有数据库,但是可以使用sys.databases返回数据库信息,并且使用USE 数据库命令来切换数据库。
允许选择性地可见数据库的唯一方式是让登录名作为数据库的owner:
ALTER AUTHORIZATION ON DATABASE::marketing TO [Fred];
数据库的owner有数据库内所有权限,但是一个数据库只有一个owner。不能让多个登录名同时对一个数据库进行owner设置。
在数据库内,可以定义特定数据库对象为某些用户可见,在SSMS中,右键数据库的【安全性】节点,选择【用户】→【属性】中的【安全对象】,然后在【查找】中添加特定对象,比如表、存储过程或者架构。然后勾选【查看定义】的【授予】列:
也可以用命令实现,这里注意上图中的【脚本】,当你不记得命令时,可以点一下这个按钮,会自动生成代码:
use [AdventureWorks2012] GO GRANT VIEW DEFINITION ON [dbo].[AWBuildVersion] TO [test] GO
原理:
可以用下面语句查看可被授权的元数据权限:
SELECT parent_class_desc AS parent , class_desc AS class , permission_name AS permission FROM sys.fn_builtin_permissions(NULL) WHERE permission_name LIKE 'VIEW%' ORDER BY CASE parent_class_desc WHEN '' THEN 0 WHEN 'SERVER' THEN 1 WHEN 'DATABASE' THEN 2 WHEN 'SCHEMA' THEN 3 END , class , permission;
【查看定义】的权限是可以在非服务器范围内查看的权限。如果需要在所有范围内查看,需要使用【VIEW ANY DEFINITION】,授予这个权限可以允许登录查看实例中的所有定义,【查看所有数据库】适合那些仅需要访问数据库但是不需要访问服务器其他对象的登录名。
在数据库中,用户可以看到自己有权限的对象,默认情况下,一个用户仅是public数据库角色的成员,是没有权限的。使用db_datareader固定数据库角色可以允许这个用户看到所有表,授予VIEW DEFINITION给存储过程、函数或者触发器,允许你看到其底层代码。如果你不想让别人看到,可以在创建对象时使用WITH ENCRYPTION(在后续介绍。)

Cardinality Indeks MySQL mempunyai kesan yang signifikan terhadap prestasi pertanyaan: 1. Indeks kardinaliti yang tinggi dapat lebih berkesan menyempitkan julat data dan meningkatkan kecekapan pertanyaan; 2. Indeks kardinaliti yang rendah boleh membawa kepada pengimbasan jadual penuh dan mengurangkan prestasi pertanyaan; 3. Dalam indeks bersama, urutan kardinaliti yang tinggi harus diletakkan di depan untuk mengoptimumkan pertanyaan.

Laluan pembelajaran MySQL termasuk pengetahuan asas, konsep teras, contoh penggunaan, dan teknik pengoptimuman. 1) Memahami konsep asas seperti jadual, baris, lajur, dan pertanyaan SQL. 2) Ketahui definisi, prinsip kerja dan kelebihan MySQL. 3) menguasai operasi CRUD asas dan penggunaan lanjutan, seperti indeks dan prosedur yang disimpan. 4) Biasa dengan debugging kesilapan biasa dan cadangan pengoptimuman prestasi, seperti penggunaan rasional indeks dan pertanyaan pengoptimuman. Melalui langkah -langkah ini, anda akan memahami sepenuhnya penggunaan dan pengoptimuman MySQL.

Aplikasi dunia nyata MySQL termasuk reka bentuk pangkalan data asas dan pengoptimuman pertanyaan kompleks. 1) Penggunaan Asas: Digunakan untuk menyimpan dan mengurus data pengguna, seperti memasukkan, menanyakan, mengemas kini dan memadam maklumat pengguna. 2) Penggunaan lanjutan: Mengendalikan logik perniagaan yang kompleks, seperti perintah dan pengurusan inventori platform e-dagang. 3) Pengoptimuman Prestasi: Meningkatkan prestasi dengan menggunakan indeks, jadual partisi dan cache pertanyaan.

Perintah SQL di MySQL boleh dibahagikan kepada kategori seperti DDL, DML, DQL, dan DCL, dan digunakan untuk membuat, mengubah suai, memadam pangkalan data dan jadual, memasukkan, mengemas kini, memadam data, dan melakukan operasi pertanyaan yang kompleks. 1. Penggunaan asas termasuk jadual penciptaan createtable, memasukkan data memasukkan, dan pilih data pertanyaan. 2. Penggunaan lanjutan melibatkan gabungan untuk Jadual Bergabung, Subqueries dan Groupby untuk Agregasi Data. 3. Kesilapan umum seperti kesilapan sintaks, jenis data yang tidak sepadan dan masalah kebenaran boleh disahpepijat melalui pemeriksaan sintaks, penukaran jenis data dan pengurusan kebenaran. 4. Cadangan Pengoptimuman Prestasi termasuk menggunakan indeks, mengelakkan pengimbasan jadual penuh, mengoptimumkan operasi gabungan dan menggunakan transaksi untuk memastikan konsistensi data.

InnoDB mencapai atomik melalui undolog, konsistensi dan pengasingan melalui mekanisme penguncian dan MVCC, dan kegigihan melalui redolog. 1) Atomicity: Gunakan Undolog untuk merekodkan data asal untuk memastikan urus niaga dapat dilancarkan kembali. 2) Konsistensi: Memastikan konsistensi data melalui penguncian peringkat baris dan MVCC. 3) Pengasingan: Menyokong pelbagai tahap pengasingan, dan RepeatableRead digunakan secara lalai. 4) Kegigihan: Gunakan redolog untuk merekodkan pengubahsuaian untuk memastikan data disimpan untuk masa yang lama.

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

MySQL sesuai untuk perusahaan kecil dan besar. 1) Perniagaan kecil boleh menggunakan MySQL untuk pengurusan data asas, seperti menyimpan maklumat pelanggan. 2) Perusahaan besar boleh menggunakan MySQL untuk memproses data besar dan logik perniagaan yang kompleks untuk mengoptimumkan prestasi pertanyaan dan pemprosesan transaksi.

InnoDB secara berkesan menghalang pembacaan hantu melalui mekanisme utama. 1) Kekunci seterusnya menggabungkan kunci baris dan kunci jurang untuk mengunci rekod dan jurang mereka untuk mengelakkan rekod baru daripada dimasukkan. 2) Dalam aplikasi praktikal, dengan mengoptimumkan pertanyaan dan menyesuaikan tahap pengasingan, persaingan kunci dapat dikurangkan dan prestasi konkurensi dapat ditingkatkan.


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

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa