السلام عليكم ورحمة الله وبركاته
أقوم بعمل برنامج مربطه مع داتابيز اس كيو ال
السؤال هل استطيع اضافة صلاحيات للمستخدمين على الجداول
مثلا مستخدم يحق له القراءة فقط
وأخر يحق له التعديل (أي في الواجهات)
مثل ما يفعل الأوراكل
السلام عليكم ورحمة الله وبركاته
أقوم بعمل برنامج مربطه مع داتابيز اس كيو ال
السؤال هل استطيع اضافة صلاحيات للمستخدمين على الجداول
مثلا مستخدم يحق له القراءة فقط
وأخر يحق له التعديل (أي في الواجهات)
مثل ما يفعل الأوراكل
اه طبعا
تعمل جدول للصلاحيات وتحدد الصلاحيات اللي انت عايز تعملها في البرنامج بتاعك كدخول علي الشاشه ام لا وطبعا في زر مسؤل عن العمليه اللي اليوزر هيعملها سواء اضافه او حذف او تعديل
حدد وبرمج زي ما انت عايز
وفي طريق اخري من داخل السيكوال بس تي تستدعي ان كل يوزر جديد هتعمل ليه golin في السيكوال وتحدد الصلاحيات بتاعته
انت شوف عايز تستخدم انهي فيهم انا عن نفسي باستخدم الطريق الاولي
كيف أفعل ذلك
مثلا أريد الموظف العادي أن لايستطيع التعديل
اذا كنت عايز الموظف لا يكون له صلاحيه التعديل علي شاشه معينه
في جدول الصلاحيات ويمون كالاتي
florm_id ,user_id,edit ,save,show
تعمل استعلام عن صلاحيات اليوزر علي هذه الشاشه اذا كان الحقل edit ="n" تخلي زر التعديل غير فعال وهكذا
شكرا لك على اهتمامك والرد المفيد
انا ابغ نفس الشي ممكن تكتب الكود اذا سمحت
اذا تقدر ترد على بسرعة الاتي محتاج مثل هذا الكود ضروري
مع العلم انا استخدم برنامج الفيجوال بيسك 2003و sql2000
يا أخ ابو ريناد انا اسف لان الكود c# ده كود الاستعلام عن صلاحية الدخول علي الشاشة
SqlCommand cmd = new SqlCommand();
cmd.CommandText = " select * from policy where form_id="+form_id+" and user_ide =" + db.user_id;
cmd.Connection = db.cn;
valdopencon();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
if (rdr["enter"].ToString() == "n")
{
MessageBox.Show("لا يوجد صلاحيات للدخول");
rdr.Close();
return;
}
else
{
rdr.Close();
show_form.MdiParent = parent;
show_form.Show();
return;
}
}
rdr.Close();
اما كود الصلاحيات علي الازرار
public void policy_button(int form_id, int user_id, Button save,Button edit,Button del)
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = " select * from policy where form_id=" + form_id + " and user_ide =" + db.user_id;
cmd.Connection = db.cn;
valdopencon();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
if (rdr["save"].ToString() == "n")
{
save.Visible = false;
}
if (rdr["edit"].ToString() == "n")
{
edit.Visible = false;
}
if (rdr["del"].ToString() == "n")
{
del.Visible = false;
}
}
rdr.Close();
}
ده لو كان سؤالك عن الاستعلام
اما اذا كان قصدك عن عمل الشاشه التي ستقوم من خلالها باعطاء الصلا حيات
اولا هتعمل جدول في قاعده البيانات في اسماء الشاشات وده زي جدول الصلاحيات بالضبط
ثانيا عمل جدول في قاعدة البانات للصلاحيات وتكون من
,form_id ,show,save,edit,del user_ide
انا كنت عامل الحقول show ,save ,edit,del نوعهم char بس الافضل يكون bit ده لو سيكوال المهم اي كان النوع اللي هتستعمله
3 مع اضافه يوزر جديد بقوم
باضافة بيانات الفورم علي اليوزر الجديد بس بخليها كلها no وده عن طريق السيكوال ب trigger وهذا هو الكود بتاعه
CREATE TRIGGER [usere_insert] ON [dbo].[users]
FOR INSERT
AS
update forms set user_ide = (select user_ide from inserted)
insert into policy select * from forms
وبعد كده طبعا عامل الشاشه اللي بعطي فيها الصلاحيات عباره عن combobox لإختيار اليوزر وجريد طبعا بعرض فيها الصلاحيات
وبعد كده بعمل تحديث ليها
ارجو ان يكون الرد كافي
ولو في حاجه مش واضحه قول
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…