一、创建用户
1、指定用户即将登陆使用的数据库
USE [DatabaseName]
2、创建SQL Server登陆帐户
create login [UserName] with password='[password]', default_database=[DatabaseName] ;
3、创建数据库用户
create user [UserName] for login [UserName] with default_schema=dbo
二、授予权限/收回权限
授予权限
1、授予所有权限
–通过加入数据库角色,赋予数据库用户“db_owner”权限
exec sp_addrolemember 'db_owner', '[UserName]'
2、授予用户只具备查询表的权限
SELECT 'GRANT SELECT ON '+ '['+ name+']' +'to DengK' FROM sys.tables WHERE NAME LIKE 'WB%';
3、授予用户对表的所有权限
–授予角色dba对HR.Employees表的所有权限
GRANT ALL ON HR.Employees to jira
4、授予用户建表权限
GRANT CREATE TABLE to jira
参考:
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
收回权限
1、收回权限
revoke all on HR.Employees from jira
2、拒绝安全账户dba对HR.Employees表的select权限
deny select on HR.Employees to jira
3、重新授权
grant select on HR.Employees to jira
三、删除数据库用户
1、删除数据库用户:
alter user [UserName] with default_schema= dbo
2、删除 SQL Server登陆帐户:
drop user [UserName]
3、从数据库中删除安全账户,failed
EXEC sp_revokedbaccess 'jira'
4、删除角色 r_test,failed
EXEC sp_droprole 'jira'
5、删除登录 l_test,success
EXEC sp_droplogin 'jira'
–recoke和deny的区别
–revoke:收回之前被授予的权限
–deny:拒绝给当前数据库内的安全账户授予权限并防止安全账户通过其组或角色成员资格继承权限。
–deny是将来都不许给,revoke是收回已经给予的。
deny 和revoke 的区别:
revoke收回权限后,可以从其他角色中重新继承权限
deny拒绝权限后,不可以从其他角色继承权限。
四、其他操作
1、禁用登录用户
alter login jira disable
2、启用登录账户
alter login jira enable
3、登录账户改密码
alter login jira with password='aabb'
4、登录账户改名
alter login jira with name=jiar
5、数据库用户改名
alter user jira with name=jiar
6、更改数据库用户 DEFAULT_SCHEMA
alter user jira with default_schema=stg
7、检查数据库中孤立用户
exec sp_change_users_login @action=’Report’
8、对孤立用户连接到现有的登录名
exec sp_change_users_login @action='update_one', @usernamepattern='kk', --数据库孤立用户 @loginname='kk'; --关联到sql server登录名 go
评论前必须登录!
注册