SQLServer创建用户限定特定视图或表

--1、创建登录名
CREATE LOGIN test_user
WITH PASSWORD = 'TEST1234!@#$';

--2、创建数据库用户并关联登录名
CREATE USER test_user FOR LOGIN test_user;

--3、设置视图View1、View2、View3权限。也可以通过界面右键视图-属性。
grant select on [dbo].[View1] to test_user
grant select on [dbo].[View2] to test_user
grant select on [dbo].[View3] to test_user

--4、将视图中涉及表的权限赋给用户
grant select on [dbo].[table1] to test_user
grant select on [dbo].[table2] to test_user


--【辅助命令】
--1、如果不想让用户看到其它数据库,可以取消public角色的"查看任意数据库"权限。但要通过下面任一命令赋权限给test_user ,但用户会有owner权限
EXEC dbo.sp_changedbowner N'test_user ';
ALTER AUTHORIZATION ON DATABASE::DB001 TO test_user ;

--2、新建用户时,提示数据库结构已存在,更改用户数据库关系
EXEC sp_change_users_login 'update_one','test_user ','test_user '


--3、如果报“推荐的新数据库所有者已经是此数据库的用户或在此数据库中已有一个别名”错误,则把数据库中的test_user 用户删除即可

--4、删除用户时检查是否登录,用kill pid清除
SELECT session_id
FROM sys.dm_exec_sessions
WHERE login_name = 'test_user '

posted @ 2024-02-20 17:45  无敌师爷IT技术Blog  阅读(301)  评论(0编辑  收藏  举报