26 เมษายน 2557

การสร้างผู้ใช้ใหม่ สำหรับ SQL Server

การสร้างผู้ใช้ใหม่ (user) สำหรับเข้าถึงทรัพยากรต่างๆ ของ SQL Server มีวิธีการอยู่หลายวิธี
สำหรับบทความนี้จะนำเสนอ วิธีง่ายๆ 3 ขั้นตอน สามารถทำได้ไม่ยากโดยอาศัยคำสั่ง T-SQL ซึ่งมีขั้นตอนวิธีทำดังนี้

สำหรับคำสั่งในขั้นตอนต่างๆ จะใช้สิทธิ์ของผู้ใช้ ชื่อ sa
ทำการสร้างฐานข้อมูลเตรียมไว้โดยกำหนดชื่อ เป็น kasem_db

ขั้นตอนที่ 1
ให้ทำการสร้าง ชื่อล็อกอิน (Login Name) เช่น kasem (อยู่ภายใต้เซิร์ฟเวอร์ชื่อ SUPERMAN-TWIST)
โดยกำหนดรหัสผ่านเป็น P@ssw0d และกำหนดดีฟอล์ตฐานข้อมูลชื่อ kasem_db

USE master
GO
CREATE LOGIN [SUPERMAN-TWIST\kasem] WITH PASSWORD = 'P@ssw0d'
       DEFAULT_DATABASE = [kasem_db]
GO

ขั้นตอนที่ 2
ต่อมาทำการสร้าง ชื่อผู้ใช้งานฐานข้อมูล (User Name) ปกติจะใช้ชื่อเดียวกันกับชื่อ ล็อกอินที่สร้างขึ้นก่อนหน้า เช่น kasem ให้กับฐานข้อมูล kasem_db

USE [kasem_db]
GO
CREATE USER kasem FOR LOGIN kasem

GO


ขั้นตอนที่ 3
ทำการกำหนดบทบาทของผู้ใช้งานฐานข้อมูล (database role) สำหรับตัวอย่างนี้จะใช้บทบาทของ SQL Server ได้จัดเตรียมไว้ให้ ดังแสดงในตาราง

ตารางแสดงรายละเอียดของ Fixed database role
Database Role
รายละเอียด
db_owner
กำหนดให้มีสิทธิ์ในการทำงานทุกอย่างในฐานข้อมูล
db_accessadmin
กำหนดให้มีสิทธิ์ในการ เพิ่ม ลบ ผู้ใช้งานฐานข้อมูล รวมถึงบทบาทของผู้ใช้
db_securityadmin
กำหนดให้มีสิทธิ์ในการจัดการสิทธิ์ต่างๆ ของผู้ใช้งานฐานข้อมูล
db_ddladmin
กำหนดให้มีสิทธิ์ในการใช้งานคำสั่งในกลุ่ม Data Definition Language (DDL)
db_backupoperator
กำหนดให้มีสิทธิ์ในสำรองข้อมูล (backup)
db_datareader
กำหนดให้มีสิทธิ์ในการอ่านข้อมูลของตารางในฐานข้อมูล
db_datawriter
กำหนดให้มีสิทธิ์ในการ เพิ่ม แก้ไข ลบ ข้อมูลในตารางของฐานข้อมูล
db_denydatareader
กำหนดให้ไม่สามารถอ่านข้อมูลของตารางในฐานข้อมูล
db_denydatawriter
กำหนดให้ไม่สามารถ เพิ่ม แก้ไข ลบ ข้อมูลในตารางของฐานข้อมูล

ในที่นี้กำหนดบทบาทให้กับผู้ใช้ kasem เป็น db_owner โดยเขียนคำสั่งดังนี้

USE TestDB
GO
EXECUTE sp_addrolemember 'db_owner' , 'Kasem'
GO

หรือถ้าหากต้องการกำหนดเป็นอย่างอื่น เช่น ต้องการให้ทำได้เฉพาะ การเพิ่ม แก้ไข ลบข้อมูลในตาราง และสิทธิ์ในการสำรองข้อมูล ซึ่งต้องใช้บทบาทหลายๆ อย่าง ก็สามารถเขียนคำสั่งได้ดังนี้

USE TestDB
GO
EXECUTE sp_addrolemember 'db_datareader' , 'Kasem'
EXECUTE sp_addrolemember 'db_datawriter' , 'Kasem'
EXECUTE sp_addrolemember 'db_backupoperator' , 'Kasem'
GO

เพียงขั้นตอนง่ายๆ 3 ขั้นตอน คุณก็สามารถสร้างชื่อผู้ใช้งานฐานข้อมูลได้เอง

สวัสดีมีเงินใช้ ถึงอากาศจะร้อน แต่ใจเราอย่าใจร้อน

"I Believe in You"

Copyright(c) 2007 - 2022 by Kasem Kamolchaipisit.