PDA

View Full Version : سوال: آیا امکان تعریف Privilegeهای اختصاصی در mysql وجود داره؟



dark-man
دوشنبه 18 اسفند 1393, 12:34 عصر
با سلام و خسته نباشید خدمت اساتید محترم .

بنا به دلایل و شرایط خاص پروژه بنده باید از سیستم مدیریت کاربران خود mysql استفاده کنم و برنامه هم برای اعتبارسنجی کاربران از همین سیستم استفاده می کنه، براساس شرایط پروژه نیاز به Privilegeهای بیشتر و متفاوت تری نسبت به Privilegeهای خود mysql دارم.
سوالی که دارم اینه که آیا می تونیم براساس نیاز Privilegeهای سفارشی یا مخصوص خودمون رو در mysql تعریف و استفاده کنیم؟

با تشکر از لطف شما .

سعید صابری
سه شنبه 19 اسفند 1393, 12:36 عصر
شاید منظورت این باشه!

GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE TO 'USER'@'localhost';

در اینجا می تونی به یک کاربر 1 یا چند تا اجازه را بدی مثلا به یکی فقط SELECT کردن اجازه بدی
میتونی به راهنمای MYSQL مراجعه کنی

dark-man
چهارشنبه 20 اسفند 1393, 10:43 صبح
شاید منظورت این باشه!

GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE TO 'USER'@'localhost';

در اینجا می تونی به یک کاربر 1 یا چند تا اجازه را بدی مثلا به یکی فقط SELECT کردن اجازه بدی
میتونی به راهنمای MYSQL مراجعه کنی

دقیقا" منظورم این نیست، این ها دسترسی های پیش تعریف شده در mysql هستند، من می خوام علاوه بر این ها دسترسی های خاص دیگه ای رو هم تعریف کنم که شاید در هیچ کدام از موجودیت های mysql قابل استفاده نباشه ولی بتونم بهش دسترسی داشته باشم برای تصمیمات بعدی .

سعید صابری
پنج شنبه 21 اسفند 1393, 00:43 صبح
دقیقتر بگو ...
مثالی..
شاید بتونیم راهنماییت کنیم

golbafan
پنج شنبه 21 اسفند 1393, 08:27 صبح
دقیقا" منظورم این نیست، این ها دسترسی های پیش تعریف شده در mysql هستند، من می خوام علاوه بر این ها دسترسی های خاص دیگه ای رو هم تعریف کنم که شاید در هیچ کدام از موجودیت های mysql قابل استفاده نباشه ولی بتونم بهش دسترسی داشته باشم برای تصمیمات بعدی .

دسترسی های mysql به همین صورت که آقای صابری گفتن اعمال میشه
اگر چیز دیگه ای مد نظر شماست باید در trigger بنویسید و در صورت لزوم (عدم دسترسی کاربر با تعریف شما) تغییرات کاربر rollback بشه

dark-man
پنج شنبه 21 اسفند 1393, 20:28 عصر
البته منظورم زیاد سخت نبود، اما توضیح بیشتر اینکه در MySQL ما یک سری Privileges پیش فرض داریم که روی دیتابیس ها ، جداول و فیلدها به ازای هر کاربر می تونیم اعمال کنیم، مثل SELECT, UPDATE, INSERT, DELETE or etc ... ، حالا من می خوام علاوه بر این ها، Privileges سفارشی خودم رو هم داشته باشم، مثل PrintPreview, NewPrint, Cursor یا هر چیز دیگه ای، آیا امکانش هست؟

کد آقای صابری >
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE TO 'USER'@'localhost';
چیزی که من نیاز دارم >
GRANT PRINT, PRINTPREVIEW, CURSOR OR ETC... ON TABLE TO 'USER'@'localhost';

سعید صابری
پنج شنبه 21 اسفند 1393, 22:20 عصر
این ها ربطی به دیتابیس نداره.اینها مربوط به برنامه شما میشن. اینها از طریق کدنویسی توی برنامت باید انجام بدی.

dark-man
جمعه 22 اسفند 1393, 10:31 صبح
این ها ربطی به دیتابیس نداره.اینها مربوط به برنامه شما میشن. اینها از طریق کدنویسی توی برنامت باید انجام بدی.

جناب صابری، اطلاع دارم که این موارد ربطی به دیتابیس نداره، سوالم این بود که میشه از این دست Privileges رو هم در MySQL تعریف کرد؟ مثل Roles که در SQL Server تعریف میشه و ... .

ممنون از جوابتون .

سعید صابری
جمعه 22 اسفند 1393, 13:05 عصر
قاعده اش اینه که شما یک تیبل تعریف کنید برای یوزرهاتون.میتونید برای هر دسترسی یک فیلد بزارید و یا یک فیلد تعریف کنید برای تمام دسترسی ها.(معمولا برای هر دسترسی یک عدد میزارن)
اگر برای هر کاربتون توی Mysql بخواهید یک یوزر تعریف این می تونه خطرناک باشه.چون کاربران می تونند به بانک دسترسی پیدا کنند. در صورتی که فقط شما و برنامه تون باید به بانک دسترسی داشته باشه.