有时需要为数据库创建一个额外的 SQL Server 登录名(用户)。这是一个小的 T-SQL 片段,它为 SQL Server 中包含的数据库创建这样的登录并添加成员资格。
使用包含的数据库用户在数据库级别对 SQL Server 和 SQL 数据库连接进行身份验证。包含的数据库是与其他数据库以及承载该数据库的 SQL Server/SQL 数据库(和主数据库)实例隔离的数据库。SQL Server 支持包含的数据库用户进行 Windows 和 SQL Server 身份验证。
在下面的示例中,我有一个 SQL Server 数据库“0dayhack”、一个用户“0dayhack”和一个我知道的密码(“0dayhack_password”)。使用此 T-SQL 创建一个额外的 SQL Server 用户(登录名)和成员资格。用您的值替换示例值:
USE [0dayhack]
CREATE USER [0dayhack] WITH PASSWORD=N'0dayhack_password', DEFAULT_SCHEMA=[dbo]
ALTER ROLE [db_datareader] ADD MEMBER [0dayhack]
ALTER ROLE [db_datawriter] ADD MEMBER [0dayhack]
ALTER ROLE [db_ddladmin] ADD MEMBER [0dayhack]
ALTER ROLE [db_securityadmin] ADD MEMBER [0dayhack]
GO
GRANT EXECUTE ON SCHEMA::dbo TO [0dayhack]
GO
简而言之,这是做什么的:
- 在数据库 0dayhack 中创建一个新用户,称为 0dayhack;
- 新用户的默认模式是dbo 模式;
- 用户被添加为以下固定数据库角色的成员:
- db_datareader:db_datareader 固定数据库角色的成员可以读取所有用户表和视图中的所有数据。用户对象可以存在于除 sys 和 INFORMATION_SCHEMA 之外的任何模式中。
- db_datawriter:db_datawriter 固定数据库角色的成员可以在所有用户表中添加、删除或更改数据。在大多数用例中,此角色将与 db_datareader 成员资格结合使用,以允许读取要修改的数据。
- db_ddladmin:db_ddladmin 固定数据库角色的成员可以在数据库中运行任何数据定义语言 (DDL) 命令。该角色的成员可以通过操纵可能在高权限下执行的代码来提升他们的权限,并且他们的行为应该受到监控。
- db_securityadmin:db_securityadmin 固定数据库角色的成员只能修改自定义角色的角色成员资格并管理权限。该角色的成员可能会提升他们的特权,他们的行为应该受到监控。
- 新创建的用户 0dayhack 获得了 dbo 模式的执行权限;
ALTER ROLE您还可以使用sp_addrolemember存储过程来代替语句:
exec sp_addrolemember @membername = [0dayhack], @rolename = [db_datareader]
exec sp_addrolemember @membername = [0dayhack], @rolename = [db_datawriter]
exec sp_addrolemember @membername = [0dayhack], @rolename = [db_ddladmin]
exec sp_addrolemember @membername = [0dayhack], @rolename = [db_securityadmin]
© 版权声明
本站网络名称:
颓废博客
本站永久网址:
https://www.0dayhack.com
网站侵权说明:
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,请在24H内删除。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END