创建只能看到自己有权限库的登录名和用户

--注:
--1. 将所有 mydb 替换成需要执行的DB名称
--2. 用户名 test_login, test_login 也需要替换
USE [master]
GO
--删除所有库中用户名为 test_login 的用户
EXEC sp_msforeachdb 'IF EXISTS(SELECT 1 FROM sys.database_principals WHERE NAME=''test_login'' AND type_desc=''SQL_USER'')
	DROP USER test_login
'
IF EXISTS(SELECT * FROM sys.syslogins AS s WHERE NAME='test_login')
BEGIN
	DROP LOGIN [test_login]	
END
/*
如果执行出错,
消息 15174,级别 16,状态 1,第 7 行
登录名 'test_login' 拥有一个或多个数据库。在删除该登录名之前,请更改相应数据库的所有者。

则执行下面的脚本修正
use mydb
go
EXEC Sp_changedbowner 'sa',true
*/
GO
CREATE LOGIN [test_login] WITH PASSWORD=N'test_login', CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [mydb]
GO
IF EXISTS(SELECT 1 FROM sys.database_principals WHERE NAME='test_login' AND type_desc='SQL_USER')
	DROP USER test_login
GO
USE [master]  
--任何库都无法看到
Deny VIEW any DATABASE TO test_login;  
GO
--可以看到mydb
ALTER AUTHORIZATION ON DATABASE::mydb TO test_login
GO
--创建用户
CREATE USER [test_login] FOR LOGIN [test_login]
GO
--给予 db_owner 角色
EXEC sp_addrolemember N'db_owner', N'test_login'
GO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值