1. Trang chủ
  2. » Giáo án - Bài giảng

Hệ quản trị cơ sở dữ liệu

102 440 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

CHƯƠNG GIỚI THIỆU VỀ SQL SERVER Microsoft SQL Server 2000 hệ quản trị CSDL quan hệ (RDBMS), cung cấp cách tổ chức liệu cách lưu chúng vào bảng Dữ liệu quan hệ nhóm vào bảng quan hệ định nghĩa bảng với Người dùng truy cập liệu Serrver thông qua ứng dụng Người quản trị CSDL truy cập Server trực tiếp để thực chức cấu hình, quản trị thực tác vụ bảo trì CSDL Ngoài ra, SQL Server CSDL khả mở rộng (chúng lưu lượng lớn liệu hỗ trợ tính cho phép nhiều người dùng truy nhập liệu đồng thời) SQL Server hệ thống quản trị sở liệu quan hệ (Relational DataBase Management System- RDBMS) sử dụng lệnh giáo chuyển Transaction-SQL để trao đổi liệu Client Computer Server Computer SQL Server số đặc tính sau:  Cho phép quản trị hệ CSDL lớn (lên đến vài tega byte), tốc độ xử lý liệu nhanh đáp ứng yêu cầu thời gian  Cho phép nhiều người khai thác thời điểm CSDL toàn quản trị CSDL (lên đến vài chục ngàn user)  hệ thống phân quyền bảo mật tương thích với hệ thống bảo mật công nghệ NT (Network Technology), tích hợp với hệ thống bảo mật Windows NT sử dụng hệ thống bảo vệ độc lập SQL Server  Hỗ trợ việc triển khai CSDL phân tán phát triển ứng dụng Internet  Cho phép lập trình kết nối với nhiều ngôn ngữ lập trình khác dùng xây dựng ứng dụng đặc thù (Visual Basic, C, C++, ASP, ASP.NET, XML, )  Sử dụng câu lệnh truy vấn liệu Transaction-SQL (Access SQL, Oracle PL/SQL) SQL Server editions:  Enterprise : Chứa đầy đủ đặc trưng SQL Server chạy tốt hệ thống lên đến 32 CPUs 64 GB RAM Thêm vào  dịch vụ giúp cho việc phân tích liệu hiệu (Analysis Services) Standard : Rất thích hợp cho công ty vừa nhỏ giá thành rẻ nhiều so với Enterprise Edition, lại bị giới hạn số chức cao cấp (advanced features) khác, edition chạy tốt  hệ thống lên đến CPU GB RAM Personal: tối ưu hóa để chạy PC nên cài đặt  hầu hết phiên windows kể Windows 98 Developer : đầy đủ tính Enterprise Edition chế tạo đặc biệt giới hạn số lượng người kết nối vào Server  lúc Ðây edition mà bạn muốn học SQL Server cần Chúng ta dùng edition suốt khóa học Edition cài Windows 2000 Professional hay Win NT Workstation Desktop Engine (MSDE): Ðây engine chạy desktop user interface (giao diện) Thích hợp cho việc triển khai ứng  dụng máy client Kích thước database bị giới hạn khoảng GB Win CE : Dùng cho ứng dụng chạy Windows CE  Trial: tính Enterprise Edition, download free, giới hạn thời gian sử dụng 1.1 Cài Ðặt SQL Server 2000 (Installation) Các bạn cần Developer Edition 64 MB RAM, 500 MB hard disk để install SQL Server Bạn install Windows Server hay Windows XP Professional, Windows 2000 Professional hay NT Workstation install Win 98 family Vì đặc điểm sản phẩm Microsoft dễ install nên không trình bày chi tiết cách install hay bước install mà trình bày điểm cần lưu ý install mà Nếu bạn gặp trở ngại việc install đưa lên forum để hỏi thêm Khi install bạn cần lưu ý điểm sau: Ở hình thứ hai bạn chọn Install Database Server Sau install xong SQL Server bạn install thêm Analysis Service bạn thích Ở hình Installation Definition bạn chọn Server and Client Tools Sau bạn nên chọn kiểu Custom chọn tất phận SQL Server Ngoài nên chọn giá trị mặc định (default) Ở hình Authentication Mode nhớ chọn Mixed Mode Lưu ý SQL Server dùng chung chế độ bảo mật (security) với Win NT dùng chế độ bảo mật riêng Trong Production Server người ta thường dùng Windows Authetication độ an toàn cao dễ dàng cho người quản lý mạng cho người sử dụng Nghĩa bạn chấp nhận (authenticated) kết nối vào domain bạn quyền truy cập liệu (access data) SQL Server Tuy nhiên ta nên chọn Mixed Mode để dễ dàng cho việc học tập Sau Install bạn thấy icon nằm góc phải bên hình, Service Manager Bạn Start, Stop SQL Server services dễ dàng cách double-click vào icon 1.2 Các Version SQL Server SQL Server Microsoft thị trường chấp nhận rộng rãi kể từ version 6.5 Sau Microsoft cải tiến viết lại engine cho SQL Server 7.0 Cho nên nói từ version 6.5 lên version 7.0 bước nhảy vọt số đặc tính SQL Server 7.0 không tương thích với version 6.5 Trong từ Version 7.0 lên version 8.0 (SQL Server 2000) cải tiến chủ yếu mở rộng tính web làm cho SQL Server 2000 đáng tin cậy Tiếp theo phát triển đến version 2005 SQL Server mắt version 2008 Một điểm đặc biệt đáng lưu ý version 2000 Multiple-Instance Nói cho dễ hiểu bạn install version 2000 chung với version trước mà không cần phải uninstall chúng Nghĩa bạn chạy song song version 6.5 7.0 với version 2000 máy (điều xảy với version trước đây) Khi version cũ máy bạn Default Instance version 2000 vừa install Named Instance 1.3 Các thành phần quan trọng SQL Server 2000 SQL Server 2000 cấu tạo nhiều thành phần Relational Database Engine, Analysis Service English Query Các thành phần phối hợp với tạo thành giải pháp hoàn chỉnh giúp cho việc lưu trữ phân tích liệu cách dễ dàng 1.3.1 Relational Database Engine - Lõi SQL Server: Ðây engine khả lưu trữ, truy xuất hiệu chỉnh liệu quy mô khác dạng table support tất kiểu kết nối (data connection) thông dụng Microsoft ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC) Ngoài khả tự động điều chỉnh (tune up) Vì thế, yêu cầu tài nguyên động nhiều người dùng kết nối vào CSDL sau giải phóng tài nguyên sau người dùng đăng xuất Ví dụ sử dụng thêm tài nguyên (resource) máy cần trả lại tài nguyên cho hệ điều hành user log off 1.3.2 Replication - chế tạo (Replica): Bản kỹ thuật cho phép việc chép phân tán đối tượng liệu từ sở liệu đến sở liệu khác để tận dụng khả thực thi toàn hệ thống cho đảm bảo tất Copy khác đồng liệu Thí dụ: Giả sử bạn database dùng để chứa liệu ứng dụng thường xuyên cập nhật Vì lý ta muốn database giống y hệt server khác để chạy báo cáo (report database) (cách làm thường dùng để tránh ảnh hưởng đến performance server chính) Vấn đề report server bạn cần phải cập nhật thường xuyên để đảm bảo tính xác báo cáo Bạn dùng chế back up and restore trường hợp Lúc chế replication SQL Server sử dụng để bảo đảm cho liệu database đồng (synchronized) 1.3.3 Data Transformation Service (DTS) - Một dịch vụ chuyển dịch data Hầu hết tổ chức cần tập trung liệu họ để tăng khả truy cập liệu lưu trữ từ vị trí khác Bằng việc sử dụng DTS liệu xây dựng dựa vào SQL SERVER cách nhập chuyển liệu từ nguồn khác tương tác lẫn Dịch vụ chuyển đổi liệu cung cấp giải pháp cho việc nhập/xuất liệu Thí dụ: Nếu làm việc công ty lớn data chứa nhiều nơi tnhau dạng khác cụ thể chứa Oracle, DB2 (của IBM), SQL Server, Microsoft Access Bạn chắn nhu cầu di chuyển data server (migrate hay transfer) không di chuyển bạn muốn định dạng (format) trước lưu vào database khác, bạn thấy DTS giúp bạn giải công việc dễ dàng 1.3.4 Analysis Service - Dịch vụ phân tích liệu Dữ liệu (Data) chứa database chẳng ý nghĩa nhiều bạn lấy thông tin (Information) bổ ích từ Do Microsoft cung cấp cho bạn công cụ mạnh giúp cho việc phân tích liệu trở nên dễ dàng hiệu cách dùng khái niệm hình khối nhiều chiều (multi-dimension cubes) kỹ thuật "đào mỏ liệu" (data mining) Qua cung cấp câu trả lời nhanh chóng cho câu truy vấn phức tạp 1.3.5 English Query : Ðây dịch vụ giúp cho việc query data tiếng Anh "trơn" (plain English) 1.3.6 Meta Data Service: Meta data thông tin mô tả cấu trúc đối tượng liệu database data thuộc loại String hay Integer , cột phải Primary key hay không Bởi thông tin mô tả chứa database nên dạng data để phân biệt với data "chính thống" người ta gọi Meta Data 1.3.7 SQL Server Books Online Đây thành phần thêm vào SQL SERVER Cho bạn đọc sách khác dạy SQL server bạn thấy books online hữu dụng thiếu Sách trực tuyến cách tốt để tìm kiếm trợ giúp chủ đề 1.4 SQL Server Tools 1.4.1 SQL SERVICE MANAGER  Quản lý dịch vụ SQL server • SQL server service: Dịch vụ CSDL • SQL server Agent service: Cung cấp, hổ trợ công việc đựơc xếp theo lịch biểu, cảnh báo lổi, quản lý kiện chép • Microsoft Search service: Hổ trợ việc lập mục trường văn SQL server • Microsoft Distributed Transaction Coordinator: Hổ trợ transaction phân phối qua nhiều má y chủ  Khởi động /dừng dịch vụ SQL server: • Start/Programs/Microsoft SQL server/Service Manager 1.4.2 Enterprise Manager a) Chức năng:  Khởi động dừng server  Đăng k ý server  Cài đặt bảo m ật đăng nhập (login security) thêm người dùng (user), nhà quản trị hệ thống (system administrator) điều hành viên  Tạo lập biểu cho công việc  Cài đặt quản trị CSDL,Quản lý server khác b) Cửa sổ Enterprise Manager:  Sau đăng k ý server, panel trái chứa tên m áy chủ  Database: Chứa danh sách CSDL măc định  Data Transform Service (DTS): Chứa dịch vụ chuyển đổi liệu  Management: Chứa chức quản trị CSDL SQL Server  Security: Cho phép thiết lập cấu hình tính an toàn SQL Server  Support Services: Cho phép điều khiển dịch vụ khác quan hệ với SQL server 1.4.3 Query Analyze: a) Giới thiệu: Query Analyze Là giao diện để thực lệnh T-SQL • Tạo truy vấn (query), bó lệnh (script) thực thi (execute) để tác động lên CSDL SQL Server • Tạo đối tượng CSDL • Tạo thực thi hàm thủ tục • Tìm lổi • Hiệu chỉnh table,… b) Khởi động Query Analyzer • Cách 1: từ menu Start • Cách : cửa sổ EM • Xác định chế độ chứng thực:  W indows Authentication (phải user win)  SQL server Authentication (sd account sa) • SQL server: thể nhập local dấu (.) để kết nối với SQL server cục c Các thành phần SQL Analyzer: • Thanh tiêu đề: hiển thị tên Server, CSDL hành tài khoản kết nối • Thanh công cụ:  Newquery: Mở cửa sổ truy vấn  Open: Mở T-SQL (*.sql)  Excute mode: Xác định nơi xuất kết tru y vấn  Nút Database: Cho phép chọn CSDL • Editor pane: Vùng soạn thảo thực thi câu lệnh T-SQL • Results pane: Vùng hiền thị kết truy vấn  Grids: Hiển thị kết dạng lưới, xem không sửa  Excution plan: Hiển thị biểu đồ kế hoạch thực thi truy vấn hành  Messages: hiển thị thông báo lổi trả lại từ server 1.4 Cấu trúc SQL SERVER 1.4.1 Các sở liệu hệ thống SQL SERVER Đặc điểm Version SQL Server 2000 trở MultipleInstance nên nói đến (SQL) Server ta nói đến Instance SQL Server, thông thường Default Instance Một Instance SQL Server system databases hay nhiều user database Các system databases bao gồm:  Master : Chứa tất thông tin cấp hệ thống (system-level information) để điều khiển thao tác thông tin mức hệ thống SQL Server Lưu trữ thông tin hệ thống 16 bảng hệ thống, gọi  system catalog System catalog lưu trữ thông tin tài khoản người dùng, bao gồm mục bảo mật, ID, mật khẩu, CSDL lưu server, biến môi trường, thông điệp lỗi hệ thống, thủ tục hệ thống Tempdb : dùng vùng lưu chứa tạm thời đới với bảng thủ tục tạm SQL Server 2000 hỗ trợ hai loại bảng tạm: bảng tạm toàn cục (global temporary table) bảng tạm cụ (local temporary table) Tên bảng tạm toàn cục bắt đầu ##, truy xuất tất client, tên bảng tạm cụ bắt đầu #, truy xuất client mà tạo chúng Làm việc Tempdb nhanh hoạt động không ghi nhận lại Tuy nhiên, client kết thúc kết nối đến Server toàn  bảng thủ tục TempDB bị xóa Model : dùng CSDL mẫu cho tất CSDL tạo hệ thống CSDL Model tùy biến để tạo  cấu trúc CSDL mặc định cho CSDL Nghĩa user database tạo SQL Server copy toàn system objects (tables, stored procedures ) từ Model database sang database vừa tạo Các CSDL vừa tạo kích cở kích cở CSDL model Msdb : SQL Server Agent dùng CSDL msdb cho tác vụ khác nhau, lập biểu, cảnh báo ghi nhận thao tác Dữ liệu lưu bảng hệ thống CSDL msdb 1.4.2 Cấu Trúc Vật Lý Của Một SQL Server Database Mỗi database SQL Server lưu trữ dạng tập tin:  Tập tin liệu (data file): Lưu trữ liệu gồm loại:  Primary data file (tên file phần mở rộng mdf) : file  chứa data system tables Secondary data file (tên file phần mở rộng ndf) : file phụ thường sử dụng database phân chia để chứa nhiều dĩa  Tập tin Log (Transaction log file – tên file phần mở rộng ldf) : file ghi lại tất thay đổi diễn database chứa đầy đủ thông tin để roll back hay roll forward cần Ghi chú: Mỗi database SQL Server tập tin liệu tập tin log: Data SQL Server chứa thành Page 8KB page liên tục tạo thành Extent hình vẽ đây: Ghi Chú : FETCH ABSOLUTE sử dụng với DYNAMIC CURSOR Ví dụ 6.4: Khai báo Cursor, mở đưa liệu ghi vào biến USE QL_BanHang Go DECLARE @MaH char(10), @TenH char(50),@DVT char(6), @SL INT DECLARE TRO_Hang CURSOR DYNAMIC FOR SELECT MaH, TenH, DVT, SoLuong FROM Hang Open TRO_Hang FETCH First FROM TRO_Hang INTO @MaH , @TenH ,@DVT , @SL Go 6.2.4 Đóng, giải phóng Cursor a) Đóng Cursor Lệnh CLOSE thực hành động giải phóng dòng liệu tham chiếu bên biến cursor, bạn mở lại cursor mà không cần thiết phải định nghĩa lại biến cursor lệnh DECLARE, cú pháp lệnh CLOSE sau: CLOSE b) Hủy bỏ Cursor Lệnh DEALLOCATE để giải phóng thật biến cursor khỏi nhớ Sau thực lệnh này, lệnh tham chiếu đến tên cursor gây lỗi Lệnh DEALLOCATE cú pháp sau: DEALLOCATE 6.3 Kiểm tra trạng thái Cursor Trong trình dịch chuyển biến kiểu trỏ để kiểm tra việc di chuyển thành công hay không ta sử dụng hàm @@Fetch_Status, hàm trả giá trị sau: 0: lấy mẩu tin thành công -1:lấy mẩu tin thất bại (Do cursor BOF EOF) -2:lấy mẩu tin thất bại, với lý ghi liệu không tồn Ví dụ 6.5 : Sử dụng kiểu liệu CURSOR để đưa hình danh sách mặt hàng USE QL_BanHang Go DECLARE TRO_Hang CURSOR DYNAMIC FOR SELECT * FROM Hang Open TRO_Hang FETCH First FROM TRO_Hang WHILE @@Fetch_status=0 FETCH Next FROM TRO_Hang CLOSE TRO_Hang DEALLOCATE TRO_Hang Ví dụ 6.6: Thêm vào Table HoaDon cột TongTien kiểu liệu Money ALTER TABLE HoaDon ADD TongTien Money Sử dụng kiểu liệu CURSOR để cập nhật liệu vào cột TongTien cho hóa đơn mua hàng USE QL_BanHang Go DECLARE @SoHD Char(10), @TongTien Money DECLARE TRO_Tinh_Tien CURSOR DYNAMIC FOR SELECT SoHD FROM HoaDon Open TRO_Tinh_Tien FETCH First FROM TRO_Tinh_Tien INTO @SoHD WHILE @@Fetch_status=0 BEGIN SELECT @TongTien=Sum(DonGia*SoLuong) FROM ChiTietHoaDon WHERE SoHD=@SoHD UPDATE HoaDon SET TongTien=@TongTien WHERE SoHD=@SoHD FETCH Next FROM TRO_Tinh_Tien INTO @SoHD END CLOSE TRO_Tinh_Tien DEALLOCATE TRO_Tinh_Tien Go 6.4 Thay đổi liệu vị trí Cursor Sử dụng phát biểu Update hay Delete để cập nhật xóa mẩu tin vị trí Cursor sử dụng với mệnh đề WHERE CURRENT OF Cập nhật liệu thông qua cursor: thực chất liệu hiệu chỉnh trực tiếp vào bảng Cập nhật giá trị cho cột: UPDATE SET = [, n] WHERE CURRENT OF Xoá liệu thông qua cursor: Thực liệu xóa bảng DELETE < Tên_Table > WHERE CURRENT OF < Tên_cursor > Ví dụ 6.7 Sử dụng kiểu liệu CURSOR để cập nhật liệu vào cột TongTien cho hóa đơn mua hàng USE QL_BanHang Go DECLARE @SoHD Char(10), @TongTien Money DECLARE TRO_Tinh_Tien CURSOR DYNAMIC FOR SELECT SoHD FROM HoaDon Open TRO_Tinh_Tien FETCH First FROM TRO_Tinh_Tien INTO @SoHD WHILE @@Fetch_status=0 BEGIN SELECT @TongTien=Sum(DonGia*SoLuong) FROM ChiTietHoaDon WHERE SoHD=@SoHD UPDATE HoaDon SET TongTien=@TongTien WHERE CURRENT OF TRO_Tinh_Tien FETCH Next FROM TRO_Tinh_Tien INTO @SoHD END CLOSE TRO_Tinh_Tien DEALLOCATE TRO_Tinh_Tien Go CHƯƠNG QUẢN LÝ BẢO MẬT VÀ NGƯỜI DÙNG 7.1 Khái niệm bảo mật Bảo mật yếu tố đóng vai trò quan trọng sống sở liệu Hầu hết hệ quản trị sở liệu thương mại cung cấp khả bảo mật sở liệu với chức như: Cấp phát quyền truy cập sở liệu cho người dùng nhóm người dùng Phát ngăn chặn thao tác trái phép người sử dụng sở liệu Cấp phát quyền sử dụng câu lệnh, đối tượng sở liệu người dùng Thu hồi (huỷ bỏ) quyền người dùng 7.2 Các chế độ bảo mật SQL Server chế độ bảo mật: + Windows Authentication Mode (Windows Authentication) + Mixed Mode (Windows Authentication and SQL Server Authentication) a) Windows Authentication Là chế độ bảo mật mà User truy nhập SQL Server phải User Windows Khi Server đặt chế độ bảo mật này, User phải User Windows quản lý truy nhập Nhìn hình ta thấy thực chế độ người sử dụng muốn khai thác SQL Server phải thông qua bước xác thực (1- Domain, 2Computer, 3- SQL Server, 4- Database) b) SQL Server Authentication Khi thiết lập chế độ bảo mật này, User quyền khai thác phải User quản trị SQL Server tạo ra, mà user Windows không khai thác Tuy nhiên, SQL Server cho phép thiết lập hai chế độ Windows Authentication Mode (Windows Authentication) Mixed Mode (Windows Authentication and SQL Server Authentication), chế độ Mixed Mode kết hợp Windows Authentication SQL Server Authentication, chế độ user Windows SQL Server để thiết lập để truy nhập SQL Server 7.3 Quản lý người dùng Người dùng SQL Server chia thành mức: Người truy nhập vào SQL Server gọi Login, người khai thác CSDL gọi User Login Là đối tượng quyền truy nhập vào SQL Server, tùy theo chế độ bảo mật SQL Server mà login account Windows NT hay SQL Server, login Server quản lý trực tiếp User đối tượng khai thác CSDL, login xác định truy nhập vào SQL Server User login ID tham gia khai thác CSDL, user CSDL quản lý trực tiếp 7.3.1 Tạo tài khoản đăng nhập cho người dùng (Login) Tạo tài khoản người dùng, ta dùng thủ tục với cú pháp sau Sp_addlogin [@login=] [,@Password=] ] [,@defdb=]] Ví dụ 7.1: Tạo tài khoản người dùng tham số sau: EXEC SP_ADDLOGIN ‘HA’, ‘HA1’, ‘QL_BanHag’ Để thay đổi mật người dùng ta dùng thủ tục với cú pháp sau : SP_Password[@old=] [@New=]< ‘Mật mới’> [@login=]< ‘Tên người dùng’> Ví dụ 7.2: Thay đổi mật người dùng SP_Password ‘HA1’, ‘HAI’, ‘HA’ 7.3.1 Cấp phát quyền truy cập vào CSDL Để cấp phát quyền truy cập cho người dùng vào CSDL ta sử dụng thủ tục cú pháp sau: SP_grantdbaccess [@login=]< ‘Tên người dùng’> [,@Name_in_db=]< ‘Tên bí danh’> Tham số @Name_in_db bí danh tên tài khoản người dùng thành tên khác truy cập vào CSDL định Ví dụ 7.3: Cấp phát quyền cho người dùng SP_grantdbaccess ‘HA’, ‘HABD’ Loại bỏ quyền sử dụng Cú pháp: SP_revokedbaccess [@Name_in_db =]< ‘Tên bí danh’> Ví dụ 7.4: Hủy bỏ quyền người dùng SP_revokedbaccess ‘HABD’ 7.4 Quyền người dùng Bảng danh sách quyền thao tác đối tượng CSDL Diễn giải Quyền SELECT Cho phép người dùng nhìn thấy liệu, người dùng quyền họ thực thi phát biểu Select để truy vấn liệu bảng hay View cho phép INSERT Cho phép người sử dụng thêm liệu, người sử dụng quyền họ thực phát biểu Insert UPDATE Cho phép người sử dụng chỉnh sửa liệu CSDL, với quyền Update người sử dụng cập nhật liệu phát biểu Update DELETE Quyền cho phép xóa liệu CSDL với quyền Delete người sử dụng xóa liệu phát biểu Delete REFERENCE Cho phép người sử dụng thêm liệu bảng khóa ngoài, người dùng quyền họ thực phát biểu INSERT, trường hợp SQL Server quyền không liên quan đến quyền truy vấn SELECT EXECUTE Quyền cho phép người sử dụng thực thi thủ tục CSDL, Với quyền người sử dụng xóa mẩu tin phát biểu thực thi thủ tục 7.4.1 Cấp phát quyền Câu lệnh GRANT sử dụng để cấp phát quyền cho người dùng hay nhóm người dùng đối tượng sở liệu Câu lệnh thường sử dụng trường hợp sau:  Người sở hữu đối tượng sở liệu muốn cho phép người dùng khác quyền sử dụng đối tượng mà sở hữu  Người sở hữu sở liệu cấp phát quyền thực thi câu lệnh (như CREATE TABLE, CREATE VIEW, ) cho người dùng khác a) Cấp phát quyền cho người dùng đối tượng sở liệu Chỉ người sở hữu sở liệu người sở hữu đối tượng sở liệu cấp phát quyền cho người dùng đối tượng sở liệu Câu lệnh GRANT trường hợp cú pháp sau: GRANT ALL | các_quyền_cấp_phát [(danh_sách_cột)] ON tên_bảng | tên_khung_nhìn |ON tên_bảng | tên_khung_nhìn [(danh_sách_cột)] |ON tên_thủ_tục |ON tên_hàm TO danh_sách_người_dùng | nhóm_người_dùng [WITH GRANT OPTION ] Trong đó:  ALL: Cấp phát tất quyền cho người dùng đối tượng sở liệu định Các quyền cấp phát cho người dùng bao gồm:  Đối với bảng, khung nhìn, hàm trả liệu kiểu bảng: SELECT, INSERT, DELETE, UPDATE REFERENCES  Đối với cột bảng, khung nhìn: SELECT UPDATE  Đối với thủ tục lưu trữ: EXECUTE  Trong quyền đề cập đến trên, quyền REFERENCES sử dụng nhằm cho phép tạo khóa tham chiếu đến bảng cấp phát các_quyền_cấp_phát Danh sách quyền cần cấp phát cho người dùng đối tượng sở liệu định Các quyền phân cách tên_bảng|tên_khung_nhìn dấu phẩy Tên bảng khung nhìn cần cấp phát danh_sách_cột quyền Danh sách cột bảng khung tên_thủ_tục nhìn cần cấp phát quyền Tên thủ tục cấp phát cho người tên_hàm danh_sách_người_dùng WITH GRANT OPTION dùng Tên hàm (do người dùng định nghĩa) cấp phát quyền Danh sách tên người dùng nhận quyền cấp phát Tên người dùng phân cách dấu phẩy Cho phép người dùng chuyển tiếp quyền cho người dùng khác Ví dụ 7.5 : Cấp phát cho người dùng tên Ha quyền thực thi câu lệnh SELECT, INSERT UPDATE bảng Hang GRANT SELECT,INSERT,UPDATE ON Hang TO thuchanh Cho phép người dùng Ha quyền xem thuộc tính(MaH,TenH,SoLuong) GRANT SELECT ON Hang(MaH,TenH,SoLuong) ON Hang) TO thuchanh Với quyền cấp phát trên, người dùng Ha thực câu lệnh sau bảng Hang SELECT MaH,TenH,SoLuong FROM Hang Nhưng câu lệnh lại thực SELECT * FROM Hang Ví dụ 7.6: Câu lệnh cấp phát cho người dùng Ha quyền SELECT, INSERT, UPDATE, DELETE VÀ REFERENCES bảng DIEMTHI GRANT ALL ON DIEMTHI TO Ha Khi ta cấp phát quyền cho người dùng đối tượng sở liệu, người dùng thực thi câu lệnh cho phép đối tượng cấp phát Tuy nhiên, người dùng quyền cấp phát quyền mà phép cho người sử dụng khác.Trong số trường hợp, ta cấp phát quyền cho người dùng đó, ta cho phép người chuyển tiếp quyền cho người dùng khác cách định tuỳ chọn WITH GRANT OPTION câu lệnh GRANT Ví dụ 7.7: Cho phép người dùng Ha quyền xem liệu bảng Hang đồng thời chuyển tiếp quyền cho người dùng khác GRANT SELECT On Hang WITH GRANT OPTION b) Cấp phát quyền thực thi câu lệnh Ngoài chức cấp phát quyền cho người sử dụng đối tượng sở liệu, câu lệnh GRANT sử dụng để cấp phát cho người sử dụng số quyền hệ quản trị sở liệu sở liệu Những quyền cấp phát trường hợp bao gồm: • Tạo sở liệu: CREATE DATEBASE • • Tạo bảng: CREATE RULE Tạo khung nhìn: CREATE VIEW • • • Tạo thủ tục lưu trữ: CREATE PROCEDURE Tạo hàm: CREATE FUNCTION Sao lưu sở liệu: BACKUP DATABASE Câu lệnh GRANT sử dụng trường hợp cú pháp sau: GRANT ALL | danh_sách_câu_lênh TO danh_sách_người_dùng Ví dụ 7.8: Để cấp phát quyền tạo bảng khung nhìn cho người dùng tên Ha ta sử dụng câu lệnh sau: GRANT CREATE TABLE,CREATE VIEW TO Ha Với câu lệnh GRANT, ta cho phép người sử dụng tạo đối tượng sở liệu sở liệu Đối tượng sở liệu người dùng tạo người sở hữu người quyền cho người dùng khác sử dụng đối tượng xóa bỏ (DROP) đối tượng tạo Khác với trường hợp sử dụng câu lệnh GRANT để cấp phát quyền đối tượng sở liệu, câu lệnh GRANT trường hợp sử dụng tuỳ chọn WITH GRANT OPTION, tức người dùng chuyển tiếp quyền thực thi câu lệnh cấp phát 7.4.2 Thu hồi quyền Câu lệnh REVOKE sử dụng để thu hồi quyền cấp phát cho người dùng Tương ứng với câu lệnh GRANT, câu lệnh REVOKE sử dụng hai trường hợp: • Thu hồi quyền cấp phát cho người dùng đối tượng sở liệu • Thu hồi quyền thực thi câu lệnh sở liệu cấp phát cho người dùng a) Thu hồi quyền đối tượng sở liệu Cú pháp câu lệnh REVOKE sử dụng để thu hồi quyền cấp phát đối tượng sở liệu cú pháp sau: REVOKE ALL| các_quyền_cần_thu_hồi [(danh_sách_cột)] ON tên_bảng | tên_khung_nhìn |ON tên_bảng | tên_khung_nhìn [(danh_sách_cột)] |ON tên_thủ_tục |ON tên_hàm FROM danh_sách_người_dùng [CASCADE] Câu lệnh REVOKE sử dụng để thu hồi số quyền cấp phát cho người dùng thu hồi tất quyền (ALL) Ví dụ : Thu hồi quyền thực thi lệnh INSERT bảng Hang người dùng Ha REVOKE INSERT ON Hang FROM Ha Giả sử người dùng Ha cấp phát quyền xem liệu cột MaH, TenH, SoLuong bảng Hang, câu lệnh thu hồi quyền cấp phát cột SoLuong (chỉ cho phép xem liệu cột MaH, TenH) REVOKE SELECT ON sinhvien(SoLuong) FROM Ha Khi ta sử dụng câu lệnh REVOKE để thu hồi quyền đối tượng sở liêu từ người dùng náo đó, quyền mà ta cấp phát trước thu hồi, quyền mà người dùng cho phép người dùng khác hiệu lực Nói cách khác, hai người dùng khác cấp phát quyền đối tượng sở liệu cho người dùng khác, sau người thu thu hồi lại quyền cấp phát quyền mà người dùng thứ hai cấp phát hiệu lực Ví dụ 7.10: Giả sử sở liệu ta người dùng A, B C A B quyền sử dụng cấp phát quyền bảng R A thực lệnh sau để cấp phát quyền xem liệu bảng R cho C: GRANT SELECT ON R TO C B cấp phát quyền xem bổ sung liệu bảng R cho C câu lệnh: GRANT SELECT, INSERT ON R TO C Như vậy, C quyền xem bổ sung liệu bảng R Bây giờ, B thực lệnh: REVOKE SELECT, INSERT ON R FROM C Người dùng C không quyền bổ sung liệu bảng R xem liệu bảng (quyền A cấp cho C hiệu lực) Nếu ta cấp phát quyền cho người dùng câu lệnh GRANT với tuỳ chọn WITH GRANT OPTION thu hồi quyền câu lệnh REVOKE phải định tuỳ chọn CASCADE Trong trường hợp này, quyền chuyển tiếp cho người dùng khác đồng thời thu hồi dụ 7.11: Ta cấp phát cho người dùng A bảng R với câu lệnh GRANT sau: GRANT SELECT ON R TO A WITH GRANT OPTION sau người dùng A lại cấp phát cho người dùng B quyền xem liệu R với câu lệnh: GRANT SELECT ON R TO B Nếu muốn thu hồi quyền cấp phát cho người dùng A, ta sử dụng câu lệnh REVOKE sau: REVOKE SELECT ON NHANVIEN FROM A CASCADE Câu lệnh đồng thời thu hồi quyền mà A cấp cho B A B xem liệu bảng R b) Thu hồi quyền thực thi câu lênh Việc thu hồi quyền thực thi câu lệnh sở liệu (CREATE DATABASE, CREATE TABLE, CREATE VIEW, ) thực đơn giản với câu lệnh REVOKE cú pháp: REVOKE ALL | các_câu_lệnh_cần_thu_hồi FROM danh_sách_người_dùng Ví dụ 7.12: Để không cho phép người dùng Ha thực lệnh CREATE TABLE sở liệu, ta sử dụng câu lệnh: REVOKE CREATE TABLE FROM Ha ... giá trị hay khuôn dạng liệu Khi đó, giá trị liệu làm cho biểu thức logíc nhận giá trị chấp nhận Ví dụ: Cho sở liệu quản lý Quản lý bán hàng gồm bảng liệu sau: Yêu cầu: Hãy tạo cấu trúc sở liệu. .. returns e) Hàm hệ thống Hàm hệ thống trả liệu hệ thống hay thông tin cấu hình SQL SERVER Hàm DB_ID([‘database_name’]) Giá trị trả Trả số định danh sở liệu DB_NAME([database_id]) Trả tên sở liệu HOST_ID()... 2.2.3 Lệnh xóa sở liệu – Drop Database Lệnh DROP DATABASE dùng để xóa sở liệu, xóa sở liệu; tất đối tượng thuộc: Table, View, Store procedure, trigger, ràng buộc, quyền định cho sở liệu bị xóa Cú

Ngày đăng: 13/04/2017, 22:38

Xem thêm: Hệ quản trị cơ sở dữ liệu

TỪ KHÓA LIÊN QUAN