Đề tài: Quản trị người dùng Nhóm 4 LOGO Thành viên 1 2001207106 Nguyễn Minh Chiến 2 2001200285 Nguyễn Quốc Dương 3 2001207335 Nguyễn Như Đạt 4 2001200162 Võ Văn Huy CHỦ ĐỀ THUYẾT TRÌNH 1. Tài khoản Login và User 3. Cấp quyền cho người dùng 4. Quản lý nhóm quyền trên cơ sở dữ liệu 1.
Các chế độ xác thực SQL Server xác thực các đăng nhập bằng hai cơ chế, Windows authentication và SQL Server authentication. Nếu chọn Windows, cần cung cấp một windows account và SQL Server sẽ chỉ ưu tiên tên của account đó trong danh sách login. Nếu chọn SQL Server authentication, cần cung cấp login name và password và cả hai đều được lưu trong SQL Server. Các chế độ xác thực Khi đăng nhập vào SQL Server, ta cũng sẽ phải chọn một trong hai cơ chế xác thực.
Nếu chọn Windows, chính account hiện đang đăng nhập vào windows được dùng. Còn với SQL Server Authentication thì cần cung cấp login ID và password. SQL Server sẽ kiểm tra và quyết định có cho login vào hay không. Các chế độ xác thực Chế độ xác thực được chọn trong quá trình cài đặt hệ quản trị SQL Server 2008, nếu muốn thay đổi, thực hiện như sau: Trong cửa sổ Object Explorer nhấp chuột phải lên Server -> chọn Properties 1.
Các chế độ xác thực Trên cửa sổ Server Properies mở trang Security -> chọn kiểu xác thực -> Chọn OK 2. Tài khoản Login và User SQL Server cho phép truy nhập vào hệ thống thông qua các login. Chỉ khi có quyền ở mức độ nhất định thì mới có thể tạo được login. Danh sách các login nằm ở mục Security/Logins như hình sau: Các login này mới chỉ có quyền truy nhập vào server chứ chưa hẳn đã truy nhập được vào các database chứa trong đó.
Tài khoản Login và User Muốn truy cập vào các database, ta phải tạo user. Mỗi database có một danh sách các user, các user này luôn luôn gắn (mapped) với một login ở mức server. Khi người dùng đăng nhập vào SQL Server thông qua login này, người dùng sẽ có quyền truy nhập vào database theo quyền hạn mà user tương ứng với nó được cung cấp. Danh sách các user nằm ở mục Security/Users của database tương ứng.1 Tài khoản đăng nhập (Login Account) Tài khoản đăng nhập là một tài khoản mà người dùng (user) sử dụng để đăng nhập vào hệ thống SQL Server.
Một login có thể truy cập nhiều database. Trong mỗi database, một login sẽ ứng với một user. Một login được cung cấp và quản lý bởi sysadmin hoặc security admin. Có 2 loại tài khoản đăng nhập: + SQL Server Login ID + Windows Login ID 2.1 Tài khoản đăng nhập (Login Account) Để tạo tài khoản đăng nhập ta thực hiện như sau: Mở rộng danh mục Security trong Server hiện hành -> nhấp chuột phải vào Logins -> chọn New login 2.1 Tài khoản đăng nhập (Login Account) Trên cửa sổ Login, trong phần Select a page chọn General và đặt tên tài khoản đăng nhập trong hộp Login name.
Tiếp theo chọn chế độ xác thực SQL Server Authentication.1 Tài khoản đăng nhập (Login Account) Trong phần Select a page chọn Server Roles (nhóm quyền Server), trong trang này có thể chỉ ra nhóm quyền server cho login mới bằng cách chọn nhóm quyền từ danh sách nhóm quyền.1 Tài khoản đăng nhập (Login Account) Nhấn chọn mục User mapping, trên trang này chúng ta có thể chỉ định cơ sở dữ liệu mà người dùng được phép truy cập vào bằng cách chọn vào ô kiểm trong cột map, khi đó tại cột user của database sẽ tự động tạo ra một user có tên mặc định cùng với tên tài khoản đăng nhập (có thể thay đổi thành tên khác). Nhấn chọn OK để kết thúc quá trình tạo tài khoản đăng nhập.1 Tài khoản đăng nhập (Login Account) Ngoài ra chúng ta có thể tạo tài khoản đăng nhập bằng lệnh như sau: − Tạo Windows login ID bằng lệnh: SP_GRANTLOGIN <Windows_Account> hoặc CREATE LOGIN < Windows_Account > FROM WINDOWS Lưu ý: <Windows_Account> phải là một account của Windows, có dạng Domain\User Sau khi được cấp quyền, tài khoản Windows được sử dụng như một login của SQL Server. Ví dụ: sp_grantlogin ‘quynhdethuong\quynh’ Hoặc create login [quynhdethuong\quynh] from windows 2.1 Tài khoản đăng nhập (Login Account) − Tạo SQL Server login ID sp_addlogin <tên đăng nhập>, <mật khẩu> [,<cơ sở dữ liệu mặc định>] hoặc Create Login < tên đăng nhập> with Password = <password>[, default database = <cơ sở dữ liệu mặc định>] Ví dụ: Tạo tài khoản đăng nhập với tên là conbocuoi, mật khẩu là 123, cơ sở dữ liệu mặc định là QL_SINHVIEN.1 Tài khoản đăng nhập (Login Account) Để huỷ tài khoản đăng nhập có thể thực hiện bằng cách nhấn chuột phải vào tài khoản đăng nhập → chọn delete → chọn OK. Hoặc có thể sử dụng cú pháp như sau: sp_droplogin <tên_tài_khoản_đăng_nhập> hoặc drop login <tên_tài_khoản_đăng_nhập> Ví dụ: 2.
Tạo tài khoản người dùng (User Account) Tạo user chính là cấp cho một login quyền truy cập vào database hiện hành. Để tạo một user, trước hết phải tạo một login cho user đó bởi vì tên user sẽ ánh xạ (mapping) đến login. Không giống như tên đăng nhập được tạo từ danh mục Security của server, tên người dùng được tạo từ trong danh mục cơ sở dữ liệu cụ thể. Để tạo tài khoản người dùng, thực hiện như sau: Mở rộng mục Security trong cơ sở dữ liệu hiện hành → nhấp chuột phải vào đối tượng Users → chọn New User.
Tạo tài khoản người dùng (User Account) Trên cửa sổ Database User gõ tên user và chọn một tài khoản đăng nhập tương ứng (tài khoản đăng nhập được chọn phải là tài khoản chưa được cấp cho user nào) Nhấp chọn OK để kết thúc quá trình tạo tài khoản người dùng. Tạo tài khoản người dùng (User Account) Ngoài ra chúng ta có thể sử dụng cú pháp như sau: sp_grantdbaccess <tênđăngnhập>[,<tên người dùng>] hoặc sp_adduser <tên đăng nhập>,<tên người dùng> hoặc create user <tên người dùng> for login <tên đăng nhập> Lưu ý: − Chọn cơ sở dữ liệu ngữ cảnh trước khi thực thi câu lệnh. − Nếu không xác định tên người dùng, tên người dùng là tên đăng nhập. − Thủ tục Grantdbaccess chỉ có thể được thực hiện bởi thành viên của (sysadmin, db_owner, db_accessadmin.2 trang159,162 VD: Tạo người dùng có tên là echxanh trên cơ sở dử liệu QL_SINHVIEN với tên tài khoản đăng nhập là echxanhdapda 2.
Tạo tài khoản người dùng (User Account) VD: Tạo người dùng có tên là echxanh trên cơ sở dử liệu QL_SINHVIEN với tên tài khoản đăng nhập là echxanhdapda rồi hủy người dùng ech xanh 2. Tạo tài khoản người dùng (User Account) − Mỗi database có 2 user mặc định: + Dbo: là user có tất cả các quyền trên database ▪ Tất cả các thành viên thuộc sysadmin server role đều là dbo của tất cả các database trên server. ▪ Một thành viên của db_owner database role cũng có quyền như dbo. + Guest: được dùng khi login account muốn truy xuất đến một database nhưng không có user account trong database đó, thì có thể đến database như một người khách.
Chúng ta cũng có thể cấp quyền cho guest user giống như cấp quyền cho các user account khác. 3 Cấp quyền cho người dùng (user) Để cấp quyền cho người dùng(user), trước tiên chọn database chứa người dùng cần cấp quyền => security Chọn users và click chuột vào tài khoản người dùng 3 Cấp quyền cho người dùng (user) Ở đây chọn Owned Schemas Click vào ô quyền cần cấp => OK 4. Quản lý nhóm quyền trên cơ sở dữ liệu Là các nhóm quyền được thiết kế cho phép các nhóm người dùng nhận các quyền cơ sở dữ liệu giống nhau mà không phải cấp những quyền này một cách riêng biệt. Thay vì cấp từng quyền cho từng người dùng, chúng ta tạo ra nhóm quyền đại diện cho các quyền được sử dụng bởi một nhóm người dùng và sau đó cấp nó cho nhóm người dùng.
Các nhóm quyền có thể chia thành 2 loại: server roles và database roles 4.1 Server roles Server role là nhóm các quyền cố định ở mức server do hệ thống tạo sẵn, người dùng không thể thay đổi được. Những nhóm quyền này được dùng để cấp quyền cho người quản trị cơ sở dữ liệu. Một login khi được cấp một trong các nhóm quyền này sẽ có thể thực hiện được một số thao tác nhất định ở mức server. Nhóm quyền mặc định khi tạo mới một login là quyền public, nhóm quyền này thực chất là không có quyền gì ngoài quyền truy nhập vào server.
Thông thường chỉ DBA mới nên có quyền sysadmin, còn các developer chỉ cần quyền public và bổ sung thêm khi cần. Khi mới cài đặt, SQL Server định nghĩa sẵn login sa. Login sa và các login là administrator của Windows đều là thành viên của Sysadmin.1 Server roles Các nhóm quyền server: − Để xem các fixed server roles sp_helpsrvrole − Để xem chi tiết quyền của mỗi role sp_srvrolepermission 4.1 Server roles − Để thêm người dùng vào 1 fixed server role Cách 1: Dùng SQL Server Management Studio: Nhấn chuột phải lên Server Role muốn thêm người dùng → chọn Properties: 4.1 Server roles Nhấn vào nút Add trong hộp thoại sau: 4.1 Server roles Hộp thoại Select Logins xuất hiện: Nhấn vào nút Browse, xuất hiện hộp thoại Browse For Objects Chọn các login đưa vào nhóm và nhấn nút OK.1 Server roles Cách 2: Dùng lệnh: sp_addsrvrolemember ‘login’, ‘role’ Ví dụ: Gán login ‘ThanhThuy’ vào nhóm sysadmin sp_addsrvrolemember 'ThanhThuy', 'sysadmin' Ví dụ: Thêm user của Windows NT Thuy-PC\Thuy vào role sysadmin sp_addsrvrolemember 'Thuy-PC\Thuy', 'sysadmin' 4.2 Database roles Database role được sử dụng để cung cấp các mức khác nhau khi truy cập vào cơ sở dữ liệu. Các user khi được thêm vào database đều mặc định có quyền public.
Với quyền public, user chỉ có thể nhìn thấy tên database mà không có quyền gì khác. Database role có 2 loại: − Fixed database role. − User defined database role. Fixed database roles Fixed database role là nhóm các quyền cố định ở mức database do hệ thống tạo sẵn, người dùng không thể thay đổi được, gồm các nhóm quyền trong bảng sau: 4.2 Database roles Nhóm quyền cố định ở mức database do hệ thống tạo sẵn: 4.2 Database roles − Để xem các fixed database role: sp_helpdbfixedrole − Để xem các quyền của mỗi fixed database role: sp_dbfixedrolepermission − Thêm một user vào database role: sp_addrolemember 'database role', 'user' Ví dụ: Gán người dùng ThanhThuy vào nhóm quyền db_datareader sp_addrolemember 'db_datareader', 'ThanhThuy’ b.
User defined database role Ngoài các nhóm quyền do hệ thống tạo sẵn, người dùng có thể cần có thêm một số quyền mà các quyền này chưa được xác định trong bất kỳ fixed database role nào.