Skip to Content

SQL Server Management

---


## 🧭 เป้าหมาย


> ให้ผู้ใช้ (Login) เห็นเฉพาะ Database ที่เราอนุญาต เช่น “HRM_DB”

> ไม่เห็น Database อื่นใน SSMS


---


## ⚙️ ขั้นตอนทำใน SSMS (แบบไม่ใช้โค้ด)


### 🔹 ขั้นตอนที่ 1: สร้าง Login ใหม่


1. เปิด **SQL Server Management Studio (SSMS)**

2. ขยายเมนู **Security → Logins**

3. คลิกขวา → เลือก **New Login…**

4. ที่แท็บ **General**


   * ใส่ Login name เช่น `user_hrm`

   * เลือก **SQL Server authentication**

   * ใส่รหัสผ่าน

   * เอาเครื่องหมายถูกออกที่ “Enforce password policy” (ถ้าไม่ต้องการบังคับเปลี่ยนรหัส)

   * คลิก OK


---


### 🔹 ขั้นตอนที่ 2: สร้าง User ใน Database ที่ต้องการให้เห็น


1. ขยายเมนู **Databases → HRM_DB → Security → Users**

2. คลิกขวา → เลือก **New User…**

3. ที่หน้าต่าง New Database User:


   * User name: `user_hrm`

   * Login name: กดปุ่ม “…” แล้วเลือก login ที่สร้างเมื่อกี้

   * Role Membership:

     ✅ ติ๊ก `db_datareader` (อ่านข้อมูลได้)

     ✅ หรือ `db_datawriter` (เขียนได้ด้วย ถ้าต้องการ)

   * กด **OK**


---


### 🔹 ขั้นตอนที่ 3: ปิดการมองเห็น Database อื่น


1. ขยายเมนู **Security → Logins**

2. คลิกขวาที่ `user_hrm` → เลือก **Properties**

3. ไปที่ **Securables**

4. ด้านล่างคลิกปุ่ม **Search… → All objects of the types → Logins → OK**

5. จากนั้นคลิก **Explicit** แท็บ แล้วกด “Add…”

6. ที่ช่อง “Select objects” → เลือก **Server** → OK

7. จากนั้นในสิทธิ์ (Permissions) ให้หา


   * **VIEW ANY DATABASE**

   * แล้วติ๊ก **Deny**


กด **OK**


✅ ตอนนี้ผู้ใช้คนนี้จะ “ไม่เห็น” Database อื่นในรายชื่อแล้ว (ยกเว้น HRM_DB ที่เขาเป็นสมาชิกอยู่)


---


### 🔹 ขั้นตอนที่ 4: ทดสอบ


1. ออกจากระบบ SSMS

2. เปิดใหม่อีกครั้ง → ที่หน้า **Connect to Server**


   * Authentication: เลือก **SQL Server Authentication**

   * Login: `user_hrm`

   * Password: (ที่ตั้งไว้)

3. ลองดูใน Object Explorer

   → จะเห็นเฉพาะ **HRM_DB** เท่านั้นครับ 🎯


---


## 🧠 หมายเหตุเพิ่มเติม


* System Databases (เช่น master, tempdb) อาจยังเห็นชื่อ แต่จะเปิดไม่ได้

* ถ้าต้องการให้เห็นบาง Table เท่านั้น ก็ไปปรับสิทธิ์ใน “Database → Security → Users → user_hrm → Securables”


---


แชร์โพสต์นี้
แท็ก
คลังเก็บเอกสารสำคัญ
BTC 240925