原文出处: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(在后续介绍。)

mysql'sblobissuitable forstoringbinarydatawithinarationaldatabase、whileenosqloptionslikemongodb、redis、andcassandraofferferulesions forunstructureddata.blobissimplerbutcanslowdowdowd withwithdata

toaddauserinmysql、使用:createuser'username '@' host'identifidedby'password '; here'showtodoitsely:1)chosehostcarefilytoconを選択しますTrolaccess.2)setResourcelimitslikemax_queries_per_hour.3)usestrong、uniquasswords.4)endforcessl/tlsconnectionswith

toavoidcommonMonmistakeswithStringDatatypesinmysql、undultingStringTypenuste、choosetherightType、andManageEncodingandCollationsEttingtingive.1)Usecharforfixed-LengthStrings、Varcharforaible Length、AndText/Blobforlardata.2)setCurrectCherts

mysqloffersechar、varchar、Text、anddenumforstringdata.usecharforfixed-lengthstrings、varcharerforvariable-length、text forlarger text、andenumforenforcingdataantegritywithaetofvalues。

MySQLBlob要求の最適化は、次の戦略を通じて実行できます。1。ブロブクエリの頻度を減らす、独立した要求の使用、または読み込みの遅延。 2。適切なブロブタイプ(TinyBlobなど)を選択します。 3。ブロブデータを別々のテーブルに分離します。 4.アプリケーションレイヤーでBLOBデータを圧縮します。 5.ブロブメタデータをインデックスします。これらの方法は、実際のアプリケーションでの監視、キャッシュ、データシェルディングを組み合わせることにより、パフォーマンスを効果的に改善できます。

MySQLユーザーを追加する方法を習得することは、データベース管理者と開発者にとって重要です。これは、データベースのセキュリティとアクセス制御を保証するためです。 1)CreateUserコマンドを使用して新しいユーザーを作成し、2)付与コマンドを介してアクセス許可を割り当て、3)FlushPrivilegesを使用してアクセス許可を有効にすることを確認します。

choosecharforfixed-lengthdata、varcharforvariable-lengthdata、andtextforlargetextfields.1)chariseffienceforconsistent-lengthdatalikecodes.2)varcharsuitsvariaible-lengthdatalikenames、balancingflexibilityandperformance.3)Textisidealforforforforforforforforforforforidex

MySQLの文字列データ型とインデックスを処理するためのベストプラクティスには、次のものが含まれます。1)固定長のchar、可変長さのvarchar、大規模なテキストのテキストなどの適切な文字列タイプを選択します。 2)インデックス作成に慎重になり、インデックスを避け、一般的なクエリのインデックスを作成します。 3)プレフィックスインデックスとフルテキストインデックスを使用して、長い文字列検索を最適化します。 4)インデックスを定期的に監視および最適化して、インデックスを小さく効率的に保つ。これらの方法により、読み取りと書き込みのパフォーマンスをバランスさせ、データベースの効率を改善できます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 中国語版
中国語版、とても使いやすい

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール
