Hôm nay chúng ta tạm nghĩ ở đây, bữa sau thảo luận tiếp nhé. Bài sau Necro sẽ nói về "security scheme concepts". Necromancer(VNISS) SQL Tutorials - Phần II (bài 5) Security Scheme Concepts Cái cụm từ "Security Scheme" Necro không biết dịch sao cho chính xác nên Necro dùng nguyên cụm lun nhé. Security Scheme của một hệ DBMS thì dựa trên ba khái niệm sau: Users Database object Privileges User ở đây là nói những người có thể truy cập vào được database. Lần nào DBMS thực hiện một thao tác bất kỳ nào như insert, update cũng đều dựa trên 1 user nào đó. Tùy thuộc coi người dùng đó được cho phép thực hiện những tác vụ nào thì người đó chỉ được tác vụ ấy. Mỗi user thì được DBMS software đánh dấu bằng user-ID. User-ID thì được DBA cấp phát cho từng user. DBMS cứ xét trước khi thực thi 1 lệnh nào đó thì user-ID đó có được phép thực thi hay không. Chúng ta có thể phân chia quyền theo group, rồi add user vào group là thuận tiện hơn cả. Database object là những thành phần trong DB có thể áp đặt việc bảo mật lên, thường là tables và views. Tuy nhiên các phần khác cũng có thể được áp đặt các chính sách bảo mật lên, như việc dùng các phần mềm riêng của cty đó. Privileges là những tác vụ mà user đó được cấp để thực thi trên các DB object. Necro chỉ đề cập đến vấn đề này ở điểm này thôi. Nếu bạn là người tạo ra table thì bạn có tất cả các quyền thao tác trên đó như SELECT, INSERT, DELETE, UPDATE. Bạn cũng có thể cấp quyền cho người khác truy cập vào table bạn vừa tạo ra. Nếu bạn là người tạo ra view bạn chỉ có quyền SELECT. Nếu muốn có thêm cái quyền khác thì bạn phải được từ trên table source của view. __________________ Necromancer(VNISS) SQL Tutorials - Phần II (bài 6) Establishing Security Scheme Bi giờ thì đến phần dùng các câu lệnh SQL để triển khai Security Scheme Ở đây chúng ta tìm hiểu cách sử dụng 2 lệnh sau: GRANT REVOKE Câu lệnh GRANT dùng để gán quyền cho user. Trích: Ví dụ: GRANT INSERT, DELETE ON member To Necro Trong ví dụ trên, quyền được cấp là INSERT & DELETE. Quyền đó tác động lên table member và người được cấp 2 quyền đó là Necro. Do đó cả 3 hướng bảo mật là users, database objects, và privileges đều có thể được thực hiện qua câu lệnh GRANT. Chúng ta cũng có thể gán 1 lần toàn bộ quyền cho user: Trích: Ví dụ: GRANT ALL PRIVILEGES ON member To Rek0r Qua câu lệnh trên thì user tên Rekc0r có quyền tương đương người tạo ra tables member rồi. Có nghĩ là làm việc thoải mái không bị cản trợ gì cả. Kể cả việc drop luôn nó. Một trường hợp khác trong việc sử dụng lệnh GRANT là bạn muốn toàn bộ user qua được phần login của DB đều có quyền đọc table member thì ta làm như sau: Ví dụ: GRANT SELECT ON member To PUBLIC[/quote] Từ khóa PUBLIC được sử dụng trong lệnh GRANT khi chúng ta muốn gán 1 quyền bất kỳ nào đó cho toàn bộ những người trong DB. Chúng ta lại cùng nhau giả sử 1 trường hợp khác để tìm hiểu thêm về GRANT nhé . Anh Neo giao cho dinhcaohack quyền UPDATE trong table member nhằm chỉnh sửa những chữ ký của những thành viên không hợp lệ. Mọi chuyện ổ định như thế cho đến 1 ngày dinhcaohack lợi dụng quyền hạn được UPDATE của mình trong table member để thay đổi số PostCount của các thành viên. Sau khi anh Neo phát hiện sự việc trên liền cho restore DB lại để số PostCount của từng thành viên chính xác. Sau đó để hạn chế sự phá phách của dinhcaohack lại thì anh Neo dùng lệnh GRANT như sau: Trích: GRANT UPDATE (Signature) ON member To dinhcaohack Vậy thì từ nay cậu ta chỉ còn có quyền thực hiện thao tác UPDATE trên cột Signature của table member mà thôi. Vậy là khỏi phá phách nữa nhé. Qua ví dụ trên các bạn cũng thấy được lệnh GRANT cho phép chúng ta gán quyền cho user trên từng column của table luôn đấy. === Passing Privileges Nếu bạn là người tạo ra table A thì bạn đương nhiên trở thành người chủ của table A đó. Trường hợp mà bạn quản lý không nỗi hay vì lý do gì đó mà bạn muốn cho đệ tử của mình giúp mình thì bạn cũng có thể gán quyền truy cập vào table A cho tên đệ tử này để him giúp mình làm việc. Và còn chuyện mình có cho phép tên đệ tử này sai lại tên lính của him làm phụ hay không thì đó lại là chuyện của mình. Câu lệnh GRANT cũng giúp ta thực hiện được điều trên Xí tí, để Necro chạy ra paint vẽ cái hình mô phỏng cho các bạn dễ hiểu Trích: GRANT UPDATE ON member To Necro WITH GRANT OPTION Trích: GRANT UPDATE ON member To PINE Coi qua hình và coi qua 2 câu SQL trên chắc các bạn cũng hiểu được. Đầu tiên là Necro được giao cho công việc UPDATE table member, nhưng mà Necro lười quá thôi đì tên PINE làm và không cho quyền tên PINE share lại vì trong câu lệnh không có WITH GRANT OPTION Necromancer(VNISS) AutoIt - Cái nhìn tổng quan Thread này - coi như là để chào đón bài viết thứ 1000 của identical. Và phấn đấu lên 1000 thanked trong thời gian sớm nhất Dedicated to cleo 1. Giới thiệu về AutoIt. Lịch sử phát triển AutoIt là gì? Nó có được coi là một ngôn ngữ lập trình ko? Đó là câu hỏi thường được nhắc đi nhắc lại AutoIt là một ngôn ngữ dễ học, dễ sử dụng, giúp người dùng có thể thực thi những công việc mình thường phải làm trên máy tính một cách tự động. Bằng cách giả lập các phím bấm, các nút click chuột, cùng với khả năng tương tác với các cửa sổ, các chương trình, các file trong máy tính AutoIt có thể làm được rất nhiều việc. Nhỏ, nhẹ, thậm chí có thể ko cần cài đặt, khả năng tương thích cao (từ Win 95 đến Win 2k3) và khả năng xuất ra file exe đã khiến AutoIt trở nên thông dụng và ngày càng được nhiều người biết đến Riêng ở VN, AutoIt được biết đến thông qua hàng loạt những "virus" phát tán qua YM Có thể nói đây là một "hướng đi" khác của các chương trình viết bằng AutoIt, góp phần ko nhỏ khiến cho ngày càng nhiều các công cụ anti-virus nhận diện chương trình viết bằng AutoIt là virus, bất luận mục đích thực sự của những chương trình này là tốt hay xấu Ban đầu, các file mã nguồn AutoIt mang đuôi .ini (AutoIt 1), sau chuyển sang .aut (AutoIt 2) và giờ là .au3 (AutoIt 3). Mã nguồn chương trình AutoIt từ chỗ khá rắc rối (phiên bản 2) đã trở nên cực kỳ đơn giản và dễ hiểu (phiên bản 3), do khá gần gũi với ngôn ngữ BASIC. Cũng nên nói thêm một chút, trong quá trình đi từ AutoIt 2 lên AutoIt 3, một lập trình viên trong nhóm phát triển AutoIt đã quyết định tách ra thực hiện một dự án mới, mang lại nhiều tính năng mạnh mẽ thậm chí còn hơn AutoIt - tuy vậy cú pháp ngôn ngữ này cực kỳ phức tạp và khó hiểu , ko trong sáng như AutoIt 3. AutoIt có thể được tải về từ trang chủ www.autoitscript.com Identical(UDS) 2. Những công cụ cần dùng để viết các chương trình bằng AutoIt Hiển nhiên, trước tiên bạn cần có AutoIt. AutoIt được phân phối ở 2 dạng: Installer và ZIP. Phiên bản mới nhất là 3.2.0.1. Ở dạng Installer, bạn sẽ down về một file exe: http://www.autoitscript.com/cgi- bin/ 0.1-setup.exe - bộ cài của AutoIt. Down bộ cài đồng nghĩa với việc bạn sẽ có thêm nhiều tiện ích khi sử dụng AutoIt. Ví dụ, khi bạn kích chuột phải vào 1 file .au3, sẽ có tùy chọn cho phép bạn chạy script / sửa script bằng editor