DBMS Users के प्रकार
Database कौन-कौन use करता है?
एक database को सिर्फ़ एक तरह का व्यक्ति use नहीं करता। एक school database सोचिए: principal reports देखते हैं, office clerk fees entry करता है, teacher marks भरते हैं, किसी programmer ने result software बनाया है, और कोई रोज़ backup लेता है। ये सभी DBMS users हैं, लेकिन हर कोई database को अलग तरीके से use करता है।
1. Database Administrator (DBA)
DBA पूरे database का ज़िम्मेदार व्यक्ति होता है। School के उदाहरण में DBA वह है जो पूरे system को सुरक्षित चलाता है।
- User accounts बनाता है और तय करता है कि कौन क्या देख या बदल सकता है।
GRANTऔरREVOKEसे permissions देता और वापस लेता है।- Backup लेता है और crash या गलती के बाद data recover करता है।
- Performance पर नज़र रखता है — index जोड़ता है, धीमी queries ठीक करता है।
- Database को सुरक्षित और updated रखता है।
-- DBA ने clerk को fees table सिर्फ़ पढ़ने की permission दी GRANT SELECT ON school.fees TO 'clerk'@'localhost';
2. Database designers
Database designers तय करते हैं कि कौन-सा data store होगा और कैसे organise होगा — data भरने से पहले ही। वे users से बात करके tables, keys और relationships design करते हैं (अक्सर ER diagram से) और normalization लगाते हैं।
उदाहरण: तय करना कि school को students, classes और fees tables चाहिए, और roll_no primary key होगी।
3. System analysts
System analysts समझते हैं कि end users को असल में क्या चाहिए और साफ़ requirements लिखते हैं — जैसे "clerk एक click में fee receipt print कर सके"। फिर designers और programmers इन्हीं requirements से system बनाते हैं।
4. Application programmers
Application programmers (developers) वे programs, forms और reports बनाते हैं जिन्हें दूसरे लोग use करते हैं। वे PHP, Java या Python जैसी languages से database से जुड़ते हैं और अपने code से SQL चलाते हैं।
// PHP programmer किसी student का result पढ़ रहा है
$stmt = $pdo->prepare("SELECT name, total FROM results WHERE roll_no = ?");
$stmt->execute([$roll]);
Programmer को हर बार हाथ से query नहीं लिखनी पड़ती — तैयार application end user के लिए यह काम करती है।
5. End users और उनके प्रकार
End users अपना रोज़ का काम करने के लिए database use करते हैं। ये चार तरह के होते हैं:
- Naive (parametric) users — सिर्फ़ तैयार screens और buttons use करते हैं, कभी query नहीं लिखते। उदाहरण: fees entry करने वाला school clerk, bank cashier, railway ticket clerk।
- Casual users — database कभी-कभी use करते हैं और हर बार अलग जानकारी चाहिए होती है। उदाहरण: principal जो कभी-कभी कोई ख़ास report माँगते हैं।
- Sophisticated users — SQL अच्छी तरह जानते हैं और खुद queries लिखते हैं। उदाहरण: data analyst, engineer या researcher।
- Standalone users — किसी तैयार package से अपना छोटा personal database रखते हैं। उदाहरण: teacher जो marks अपने personal app या छोटी LibreOffice Base file में रखते हैं।
पर्दे के पीछे काम करने वाले
कुछ लोग आपका database सीधे use नहीं करते, लेकिन DBMS को संभव बनाते हैं:
- DBMS designers और implementers — खुद DBMS software बनाते हैं (जैसे MySQL की team)।
- Tool developers — backup, design या reporting जैसे tools बनाते हैं।
- Operators और maintenance staff — hardware और software को चलाते और ठीक रखते हैं।
करके देखें: हर तरह के user का अलग MySQL account
असली school system में DBA सबको root password नहीं देता। हर तरह के user को अलग account मिलता है जिसमें सिर्फ़ ज़रूरी permissions हों (principle of least privilege)। ये commands DBA (root) के रूप में चलाएँ:
CREATE USER 'dev_app'@'localhost' IDENTIFIED BY 'Dev#2026pass'; CREATE USER 'clerk'@'localhost' IDENTIFIED BY 'Clerk#2026pass'; CREATE USER 'analyst'@'localhost' IDENTIFIED BY 'Ana#2026pass'; GRANT SELECT, INSERT, UPDATE, DELETE ON school.* TO 'dev_app'@'localhost'; -- application programmer's app GRANT SELECT, INSERT ON school.fees TO 'clerk'@'localhost'; -- naive user (fee screen) GRANT SELECT ON school.* TO 'analyst'@'localhost'; -- sophisticated user: read-only SHOW GRANTS FOR 'clerk'@'localhost';
अब clerk के रूप में login करके ऐसा काम करें जिसकी clerk को अनुमति नहीं:
-- logged in as clerk DELETE FROM school.fees WHERE roll_no = 2; SELECT * FROM school.students;
Clerk fees जोड़ और देख सकता है पर delete नहीं कर सकता और students के records नहीं देख सकता। Clerk नौकरी छोड़े तो DBA DROP USER 'clerk'@'localhost'; चलाता है – किसी और account पर असर नहीं।
MariaDB 10.11 (MySQL-compatible) पर tested। MySQL 8 में वही permissions और errors मिलते हैं; उसका SHOW GRANTS password hash नहीं छापता। और पढ़ें: GRANT और REVOKE।
तुलना तालिका
| User | मुख्य काम | SQL लिखता है? | School उदाहरण |
|---|---|---|---|
| DBA | Security, users, backup, performance | हाँ | IT in-charge |
| Database designer | Tables और keys design करना | हाँ (DDL) | students/fees tables बनाना |
| System analyst | User requirements समझना | कभी-कभार | Fee module की planning |
| Application programmer | Apps और forms बनाना | हाँ, code के अंदर | Result software बनाना |
| Naive user | तैयार screens use करना | नहीं | Office clerk |
| Casual user | कभी-कभार अलग reports | कभी-कभी | Principal |
| Sophisticated user | अपनी queries खुद लिखना | हाँ | Data analyst |
| Standalone user | छोटा personal database | आमतौर पर नहीं | Teacher की अपनी marks file |
आम गलतियाँ
- Application programmer को "end user" कहना — programmer app बनाता है, end user उसे use करता है।
- Naive और casual users को एक समझना — naive users रोज़ एक ही काम तय screens से करते हैं; casual users कभी-कभार अलग जानकारी माँगते हैं।
- यह सोचना कि DBA सिर्फ़ बड़ी companies में होता है — छोटे school में अक्सर एक ही व्यक्ति DBA, designer और programmer तीनों का काम करता है।
सारांश
DBMS users हैं: DBA, database designers, system analysts, application programmers और end users (naive, casual, sophisticated और standalone)। आगे पढ़ें: DBMS के advantages और limitations, या देखें कि DBA GRANT और REVOKE कैसे use करता है।
