পুরো সাবনেটের জন্য কীভাবে মাইএসকিউএলে দূরবর্তী অ্যাক্সেস দিতে হবে?


93

আমি এই কোডটি ব্যবহার করে সহজেই একটি আইপিতে অ্যাক্সেস দিতে পারি:

$ mysql -u root -p
Enter password:    
mysql> use mysql    
mysql> GRANT ALL ON *.* to root@'192.168.1.4' IDENTIFIED BY 'your-root-password';     
mysql> FLUSH PRIVILEGES;

তবে আমার পুরো সাবনেটটি 192.168.1। * কে ডেটাবেসটি দূর থেকে অ্যাক্সেস করার অনুমতি দেওয়া দরকার।

আমি এটা কিভাবে করবো?

উত্তর:


100

সম্পাদনা: এই পৃষ্ঠায় মালভাইনাসের উত্তরটি দেখার এবং এটির বিষয়ে বিবেচনা করুন । নেটমাস্কগুলি অনেক বেশি মার্জিত সমাধান।


আইপি ঠিকানায় ওয়াইল্ডকার্ড হিসাবে কেবল শতাংশের চিহ্ন ব্যবহার করুন।

Http://dev.mysql.com/doc/refman/5.1/en/grant.html থেকে

আপনি হোস্টের নামে ওয়াইল্ডকার্ড নির্দিষ্ট করতে পারেন। উদাহরণস্বরূপ, user_name@'%.example.com'প্রযোজ্য user_nameকোনো হোস্টের জন্য example.comডোমেন আর user_name@'192.168.1.%'প্রযোজ্য user_nameকোনো হোস্টের জন্য 192.168.1বর্গ সি সাবনেট।


6
আমি এটি কেবল এটির মতো করে দিয়েছি, তবে বলুন, এটি কীসের জন্য প্রযোজ্য নয়: user_name@'192.168.1.my-hacked-rnds.killing.mysql.com '???? আমি এখন চলব, যেহেতু এটি মাইএসকিউএল হওয়ায় আমার বোধ হয় উত্তরটি আমি জানতে চাই না।
ফ্লোরিয়ান হিগল

+ ফ্লোরিয়ান, আমি বুঝতে পারি যে এটি '%' ব্যবহার করে মারধর করে কারণ এটি সুরক্ষাের একটি স্তর যোগ করে যা অবশ্যই কাটিয়ে উঠতে পারে তবে আমি মনে করি আপনি এর দুর্বলতা সম্পর্কে একটি ভাল বক্তব্য রেখেছেন। আমি অবশ্যই এই কনফিগারেশনটিকে অন্য উপায়ে পরিপূরক করি, যেমন একটি পৃথক সাবনেটে ডাটাবেস সার্ভারটি লক করা যা আমি অন্য বিষয়গুলির মধ্যেও আপনার উদ্বেগকে এড়াতে ফায়ারওয়ালের মাধ্যমে অ্যাক্সেস নিয়ন্ত্রণ করতে পারি।
জোশিয়াহ

22
'192.168.1.my-hacked-rnds.killing.mysql.com' এর মতো উদাহরণগুলি dev.mysql.com/doc/refman/5.5/en/account-names.html তে বিশেষভাবে সম্বোধন করা হয়েছে : এই ধরনের প্রচেষ্টা ব্যর্থ করার জন্য, মাইএসকিউএল অঙ্ক এবং বিন্দু দিয়ে শুরু হওয়া হোস্ট নামগুলির সাথে মিল পাওয়া যায় না। ... একটি আইপি ওয়াইল্ডকার্ড মান হোস্টের নাম নয়, কেবলমাত্র আইপি ঠিকানার সাথে মেলে।
স্টিফান লাসিউইস্কি

118

এটা তোলে এছাড়াও আপনি একটি নেটমাস্ক ব্যবহার করতে পারেন মত দেখায় , যেমন

GRANT ... TO 'user'@'192.168.0.0/255.255.255.0' IDENTIFIED BY ...

7
এটি একমাত্র প্রযুক্তিগত সঠিক উত্তর হিসাবে এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। কমপক্ষে 5.5 থেকে সমর্থিত: dev.mysql.com/doc/refman/5.5/en/account-names.html
লাইফফুগেন্টার

6
"172.16.0.0/16" এর মতো সিআইডিআর স্বরলিপি ব্যবহার করার চেষ্টা করবেন না, এটি কার্যকর হয় না। সর্বদা পূর্ণ নেটমাস্ক ব্যবহার করুন।
অলিভার আর।

মনে হয় আপনাকে প্রথম আইপি ঠিকানা ব্যাপ্তিতে ব্যবহার করতে হবে; উদাহরণস্বরূপ 192.168.0.34/255.255.255.0 ব্যবহার করে ব্যর্থ হবে!
স্যান্ডার

@ স্যান্ডারব্যাকাস: 192.160.0.34/255.255.255.0একইরকম 192.168.0.34/24যা সত্যিকার অর্থে /24বোঝা যায় না (তার মানে শেষ সংখ্যাটি 0 থেকে 255 পর্যন্ত হতে পারে, আপনার 34 এর মান উপেক্ষা করে)। আপনি যদি আইপি এর জন্য বৈধ মাস্ক ব্যবহার করেন তবে কি এটি কাজ করে 192.168.0.34/255.255.255.252?
মলভাইনাস

@ মালভাইনয়াস এটি আমার বক্তব্য ছিল। আপনি যদি 192.160.0.34/255.255.255.0 mysql ব্যবহার করেন তবে 192.160.0.34 অনুমতি দেয় না। আমি বোঝাতে চাইছি পূর্ণ / 24 (হ্যাঁ, আমি পুরো নেটমাস্কটি নথিভুক্ত হিসাবে ব্যবহার করেছি), তবে দৃশ্যত যদি আপনাকে সম্পূর্ণ পরিসীমা অনুমতি দেওয়ার জন্য 192.160.0.0/255.255.255.0 ব্যবহার করতে হয়।
স্যান্ডার

28

আপনি কেবল '%' আপনার ওয়াইল্ডকার্ড হিসাবে ব্যবহার করবেন:

GRANT ALL ON *.* to root@'192.168.1.%' IDENTIFIED BY 'your-root-password';


5

আমি যে এক অদ্ভুততার মুখোমুখি হয়েছিলাম তার কেবল একটি নোট:
বিবেচনা করুন:

db server:  192.168.0.101
web server: 192.168.0.102

আপনার যদি mysql.user ব্যবহারকারীর 'user'@'192.168.0.102'পাসওয়ার্ড 1 এবং 'user'@'192.168.0.%'পাসওয়ার্ড 2 সহ অন্য একটিতে সংজ্ঞা দেওয়া থাকে ,

তারপর,

আপনি যদি পাসওয়ার্ড 2 দিয়ে 'ব্যবহারকারী' হিসাবে ওয়েব সার্ভার থেকে ডিবি সার্ভারের সাথে সংযোগ স্থাপনের চেষ্টা করেন,

এটি 'অ্যাক্সেস অস্বীকৃত' ত্রুটির ফলে ঘটবে কারণ 'user'@'192.168.0.102'ওয়াইল্ডকার্ড 'user'@'192.168.0.%'প্রমাণীকরণের উপরে একক আইপি প্রমাণীকরণ ব্যবহৃত হয় ।


4
আমি নিশ্চিত নই যে এটি প্রশ্নের উত্তর। যদি এটি মূল প্রশ্নের সরাসরি উত্তর না দেয় তবে এটি একটি মন্তব্য হিসাবে পোস্ট করা উচিত।
কিমিক্সনার

13
কুমিক্সনার, আপনি কি কোনও মন্তব্যে এত কিছু লিখবেন বলে আশা করছেন? কিছু সাধারণ জ্ঞান প্রয়োগ করুন এবং একটি রোবট হওয়া বন্ধ করুন। এই সম্প্রদায়টি বিকাশকারীদের তাদের জীবনকে অসুবিধা না করতে সহায়তা করার জন্য।
ব্যবহারকারী 1735921

0

আপনি সার্ভারটি সংযুক্ত করার পরে এবং আপনি আপনার হোস্টের সাথে সংযোগ স্থাপন করতে চান, আপনার নীচের পদক্ষেপগুলি করা উচিত:

  1. mysql খুলতে mysql লিখুন
  2. লিখুন ;GRANT ALL ON . to root@'write_your_ip_addres' IDENTIFIED BY 'write_password_to_connect'
  3. মাইএসকিএল থেকে প্রস্থান করতে নিয়ন্ত্রণ এবং এক্স চাপুন
  4. লিখুন nano /etc/mysql/my.cnf
  5. my.cnf ফোল্ডারে বাইন্ড-ঠিকানা = 127.0.0.1 এর আগে # লিখুন
  6. # বাইন্ড-ঠিকানা = 127.0.0.1
  7. নিয়ন্ত্রণ + এক্স সহ my.cnf ফোল্ডারটি সংরক্ষণ করুন
  8. লিখুন service mysql restart
  9. আপনি আপনার হোস্টে নেভিচ্যাট মাধ্যমে সংযোগ করতে পারে

0

@ মালভিনিয়াস উত্তর দ্বারা অনুপ্রাণিত আমি নিজে চেষ্টা করে দেখেছি যে এটি আমার পক্ষে কার্যকর হয়নি।

আপনি '192.168.1।%' বা '192.168.1.0/255.255.255.0' দিয়ে সাবনেট মাস্ক নির্দিষ্ট করতে পারেন তবে সাবনেটটি সর্বদা সম্পূর্ণ অক্টেটে থাকতে হবে। দেখতে https://mariadb.com/kb/en/create-user/#host-name-component । ফলস্বরূপ এক নির্দিষ্টকরণের অন্য উপায়ের মধ্যে কার্যকারিতা একই।

উদাহরণস্বরূপ '192.168.1.0/255.255.255.128' কাজ করবে না কারণ এটি সম্পূর্ণ অক্টেটের সীমানায় নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.