asp.net المستخدم استعرض البيانات الخام المحددة / المقيدة من SQL-Server

StackOverflow https://stackoverflow.com/questions/1706306

  •  19-09-2019
  •  | 
  •  

سؤال

في تطبيق ASP.NET WebForms، أود السماح للمستخدم النهائي بتصفح البيانات الخام المحددة في قاعدة بيانات SQL-Server.

ومع ذلك، أود تقييد الوصول للمستخدم فقط عرض بعض البيانات المستندة إلى اسم المستخدم.

لست متأكدا من كيفية القيام بذلك بطريقة ممكنة للمستخدم لفهمها، لأن SQL غير معروف بالضرورة للمستخدم.

ما الخيارات التي لدي هنا؟


كأساس لذلك، نظرت في إنشاء وظيفة SQL واحدة لكل جدول في السؤال. يجب أن تقوم هذه الوظيفة بإرجاع البيانات التي يسمح للمستخدم بعرضها، على سبيل المثال،

CREATE FUNCTION ufn_RawData_Employee(@username nvarchar(256))
RETURNS TABLE
AS ( SELECT * FROM Employee 
  WHERE [@username is allowed to view the given Employee] )

في صفحة ويب يمكن للمستخدم النهائي بعد ذلك كتابة بيان تشبه SQL

SELECT Name, HireDate FROM ((Employee))

أين (([TableName])) ثم يمكن استبدالها ufn_RawData_[TableName]([UserName]) قبل استدعاء قاعدة البيانات. (لأسباب أمنية يمكن بعد ذلك إجراء هذه المكالمات من قبل مستخدم SQL فقط الأذونات هي أذونات تحديد هذه الوظائف.)

ومع ذلك، قد يكون هذا النهج صعبا للغاية بالنسبة للمستخدم النهائي. أود أن أعرف ما إذا كان هناك حل أسهل / مستخدم لأدوات المستخدمين موجود للمستخدم النهائي لتصفح البيانات الخام المحددة؟

هل كانت مفيدة؟

المحلول

إذا قمت بإظهار بيانات المستخدم فقط من جدول واحد، أو عرض واحد (ربما سيكون أكثر فائدة) ثم نعم، يمكنك تخزين اسم هذا العرض في جدول واسترجاعه بدالة. يمكنك بعد ذلك عرض البيانات في الصفحات، وتأكد من أن البرامج النصية المختارة القياسية لديك تحتوي على وظيفة بحث مدمجة إذا لزم الأمر.

ليست هناك حاجة للمستخدم لكتابة SQL إذا كانت تحصل على بيانات فقط من جدول أو عرض. إذا كنت بحاجة إلى تقديم وجبات / طرق عرض محتملة متعددة، فدعهم يختارون من القائمة المنسدلة، لكن لا يبدو من المفيد السماح لهم بكتابة استفسارات SQL الخاصة بهم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top