SQL SERVER 建立登入使用者,授予許可權
阿新 • • 發佈:2019-02-16
--建立登入使用者:
create login jira with password='123456',default_database=master
--建立資料庫使用者
create user jira for login jira with default_schema=dbo
--通過加入資料庫角色,賦予資料庫使用者“db_owner”許可權
exec sp_addrolemember 'db_owner', 'jira'
--禁用登入使用者
alter login jira disable
--啟用登入賬戶
alter login jira enable
--登入賬戶改密碼
alter login jira with password='aabb'
--登入賬戶改名
alter login jira with name=jiar
--資料庫使用者改名
alter user jira with name=jiar
--更改資料庫使用者 DEFAULT_SCHEMA
alter user jira with default_schema=stg
--刪除資料庫使用者
drop user jira
--刪除登入賬戶
drop login jira
--授予使用者建表許可權
GRANT CREATE TABLE to jira
--授予角色dba對HR.Employees表的所有許可權
GRANT ALL ON HR.Employees to jira
--收回許可權
revoke all on HR.Employees from jira
--授予角色dba對HR.Employees表的SELECT許可權
GRANT SELECT ON HR.Employees TO jira
--拒絕安全賬戶dba對HR.Employees表的select許可權
deny select on HR.Employees to jira
--重新授權
grant select on HR.Employees to jira
--從資料庫中刪除安全賬戶,failed
EXEC sp_revokedbaccess 'jira'
--刪除角色 r_test,failed
EXEC sp_droprole 'jira'
--刪除登入 l_test,success
EXEC sp_droplogin 'jira'
--recoke和deny的區別
--revoke:收回之前被授予的許可權
--deny:拒絕給當前資料庫內的安全賬戶授予許可權並防止安全賬戶通過其組或角色成員資格繼承許可權。
--deny是將來都不許給,revoke是收回已經給予的。
deny 和revoke 的區別:
revoke收回許可權後,可以從其他角色中重新繼承許可權
deny拒絕許可權後,不可以從其他角色繼承許可權。
GRANT INSERT ON TableA TO RoleA
GO
EXEC sp_addrolemember RoleA, 'UserA' -- 使用者UserA將有TableA的INSERT許可權
GO
REVOKE INSERT ON TableA FROM RoleA -- 使用者UserA將沒有TableA的INSERT許可權,收回許可權
GO
GRANT INSERT ON TableA TORoleA --重新給RoleA以TableA的INSERT許可權
GO
-- 雖然使用者UserA所在RoleA有TableA的INSERT許可權,但UserA本身被DENY了,所以使用者UserA將沒有TableA的INSERT許可權。
DENY INSERT ON TableA TO UserA
--檢查資料庫中孤立使用者
exec sp_change_users_login @action='Report'
-- 對孤立使用者連線到現有的登入名
exec sp_change_users_login
@action='update_one',
@usernamepattern='kk', --資料庫孤立使用者
@loginname='kk'; --關聯到sql server登入名
go