mysql儲存程式許可權控制
mysql5.0引入了一些管理儲存程式的許可權:
[code]
create routine: 允許使用者建立新的儲存程式
alter routine: 允許使用者修改security mode/sql mode/comment
execute: 允許使用者只需儲存程式
[/code]
給使用者賦予許可權:
[code]
grant create routine on mydatabase.* to sp_creator;
grant alter routine on mydatabase.* to sp_creator;
grant execute on mydatabase.* to sp_creator;
grant execute on procedure mydatabase.test1 to sp_creator;
[/code]
儲存程式的執行安全模式:
[code]
sql security definer: 預設模式,儲存程式的定義者才能執行
sql security invoker: 呼叫者都可以執行,但是許可權細粒度的控制轉交到儲存程式裡的sql語句的執行許可權
[/code]
儲存程式裡封裝訪問許可權的例子:
[code]
create procedure sp_employee_list(in_department_id decimal(8,0)
sql security definer reads sql data
begin
declare l_user_name varchar(30);
declare l_not_found int default 0;
declare l_department_name varchar(30);
declare l_manager_id int;
declare user_csr cursor for
select d.department_name, e.manager_id
from departments d join employees e using(department_id)
where db_user=l_user_name;
declare continue handler for not found set l_not_foun=1;
/* strip out the host from the user name */
select substr(user(),1,instr(user(), '@')-1)
into l_user_name;
open user_csr;
fetch user_csr into l_department_name, l_manager_id;
close user_csr;
if l_department_name='payroll' or l_manager_id in (0, 1) then
select surname, firstname, salary
from employees
where department_id=in_department_id
order by employee_id;
else
/* not authorized to see salary */
select surname, firstname, '******xx' as salary
from employees
where department_id=in_department_id
order by employee_id;
end if;
end;
[/code]
mysql 許可權控制
mysql許可權檢查原理 使用者 伺服器,分為兩個階段 1.使用者有沒有許可權連線上來 2.有沒有許可權執行此操作 增刪查改 對於1 伺服器如何判斷使用者有沒有許可權連線 根據host,user,password這三個引數判斷的,使用者的這三個資訊儲存在mysql.user表中 修改host域,使i...
mysql 許可權控制
1 mysql的許可權是,從某處來的使用者對某物件的許可權。2 mysql的許可權採用白名單策略,指定使用者能做什麼,沒有指定的都不能做。3 許可權校驗分成兩個步驟 a 能不能連線,檢查從 來,使用者名稱和密碼,常見錯誤 error 1045 28000 access denied for user...
mysql 許可權管理無效 mysql 許可權控制筆記
階段1 伺服器檢查是否允許你連線。階段2 假定你能連線,伺服器檢查你發出的每個請求。看你是否有足夠的許可權實施它。例如,如果你從資料庫表中選擇 select 行或從資料庫刪除表,伺服器確定你對錶有select許可權或對資料庫有drop許可權。1.許可權檢視 mysql show grants for...