2016-09-03 1 views
0

という名前のデータベースと10000レコードのテーブルがあり、データベースにuser1という名前のユーザーがあります。 user1は、MS SQLサーバーでクエリを入力した場合データベースのユーザーがテーブルの上位100レコードにアクセスするように制限する方法

は次に:

select * from tb1, then it should return only 100 records. 

テーブル全体へのアクセス権を読み書き許可する唯一のオプションがあります。

+0

あなたは何が疲れていて、どのようなエラーがあるかを示してください。 – DimaSan

答えて

1

コメントが長すぎます。

これを行うための組み込みのデータベースメソッドはありません。多くの場合、アプリケーションは結果を「ページング」します。アプリケーションがselect * from tbl1で実行されている場合、アプリケーションは100行しかフェッチしません。注:order by節がないと、SQLに「最上行」という概念はありません。 SQLテーブルは、の順序付けされていないを表します。

あなただけの100行を見にユーザーを制限したい場合は、ビューを使用することができます。

create view v_table as 
    select top 100 t.* from tbl1 t; 

はまたorder by句を指定せず、これは別の実行で異なる行を返す可能性があることに注意してください。

関連する問題