创建用户自定义数据库用户注意事项

如果已忽略 FOR LOGIN,则新的数据库用户将被映射到同名的SQL Server登录名。

默认架构将是服务器为此数据库用户解析对象名时将搜索的第一个架构。 除非另外指定,否则默认架构将是此数据库用户创建的对象所属的架构。

如果用户具有默认架构,则将使用默认架构。 如果用户不具有默认架构,但该用户是具有默认架构的组的成员,则将使用该组的默认架构。 如果用户不具有默认架构而且是多个组的成员,则该用户的默认架构将是具有最低principle_id的Windows组的架构和一个显式设置的默认架构。(不可能将可用的默认架构之一显式选作首选架构。)如果不能为用户确定默认架构,则将使用 dbo 架构。

DEFAULT_SCHEMA可在创建它所指向的架构前进行设置。

在创建映射到证书或非对称密钥的用户时,不能指定DEFAULT_SCHEMA。

如果用户是sysadmin固定服务器角色的成员,则忽略DEFAULT_SCHEMA的值。sysadmin固定服务器角色的所有成员都有默认架构dbo

WITHOUT LOGIN子句可创建不映射到SQL Server登录名的用户。它可以作为guest连接到其他数据库。可以将权限分配给这一没有登录名的用户,当安全上下文更改为没有登录名的用户时,原始用户将收到无登录名用户的权限。

只有映射到Windows主体的用户才能包含反斜杠字符 (\)。

不能使用CREATE USER创建guest用户,因为每个数据库中均已存在guest用户。可通过授予guest用户CONNECT权限来启用该用户,如下所示:

可以在 sys.database_principals 目录视图中查看有关数据库用户的信息。

使用SSMS数据库管理工具创建用户自定义数据库用户

1、连接服务器-》在对象资源管理器窗口选择数据库-》展开数据库-》展开安全性-》展开用户-》右键点击用户-》选择新建。

2、在数据库用户-新建弹出框-》点击常规-》选择用户类型-》输入用户名(一个或多个登录对象在数据库中的映射,可以对用户对象进行授权,以便为登录对象提供对数据库的访问权限。用户定义信息存放在每个数据库的sysusers表中。)-》选择登录名(服务器方的一个实体,使用一个登录名只能进入服务器,但是不能让用户访问服务器中的数据库资源。每个登录名的定义存放在master数据库的syslogins表中。SQLSERVER把登录名与用户名的关系称为映射。用登录名登录SQLSERVER后,在访问各个数据库时,SQLSERVER会自动查询此数据库中是否存在与此登录名关联的用户名,若存在就使用此用户的权限访问此数据库,若不存在就是用guest用户访问此数据库)-》选择用户所属架构(数据库角色可以添加,可以定制不同权限数据库架构,类似于数据库对象的命名空间,用户通过架构访问数据库对象)。

3、在数据库用户-新建弹出框-》选择用户所拥有的架构(数据库角色可以添加,可以定制不同权限数据库架构,类似于数据库对象的命名空间,用户通过架构访问数据库对象)。

4、在数据库用户-新建弹出框-》点击成员身份-》选择数据库成员身份(数据库角色指定了可以访问相同数据库对象的一组数据库用户)。

5、在数据库用户-新建弹出框-》点击搜索选择一个安全对象(安全对象是SQL Server 数据库引擎授权系统控制对其进行访问的资源。)-》选择安全对象以后选择安全对象所拥有的权限(有权限就是可以资源操作,无权限就是不能对资源进行操作。)。

6、在数据库用户-新建弹出框-》选择扩展属性-》输入注释名称-》输入注释值(这是对自定义数据库用户添加注释,方便维护和其他人理解。)-》点击确定。

7、不需要刷新即可在对象资源管理器查看创建结果。

使用T-SQL脚本创建用户自定义数据库用户

语法

----创建用户自定义数据库用户
----声明数据库引用
--use database_name;
--go
----windows用户
--create user user_name for login login_name with default_schema=architecture_name,allow_encrypted_value_modifications={ on | off };
----不带登录名的SQL用户
--create user user_name without login with default_schema=architecrure_name,allow_encrypted_value_modifications={ on | off };
----带登录名的SQL用户
--create user user_name for login login_name with default_schema=architecture_name,allow_encrypted_value_modifications={ on | off };
----映射到非对称密钥的用户
--create user user_name for asymmetric key asym_key_name;
----映射到证书的用户
--create user user_name for certificate certificate_name; --拥有的架构
--use database_name;
--go
--alter authorization on schema::[db_accessadmin] to user_name;
--go
--alter authorization on schema::[db_backupoperator] to user_name;
--go
--alter authorization on schema::[db_datareader] to user_name;
--go
--alter authorization on schema::[db_datawriter] to user_name;
--go
--alter authorization on schema::[db_ddladmin] to user_name;
--go
--alter authorization on schema::[db_denydatareader] to user_name;
--go
--alter authorization on schema::[db_denydatawriter] to user_name;
--go
--alter authorization on schema::[db_owner] to user_name;
--go
--alter authorization on schema::[db_securityadmin] to user_name;
--go
--alter authorization on schema::[guest] to user_name;
--go --成员身份
--use database_name;
--go
--alter role [db_accessadmin] add member user_name;
--go
--alter role [db_backupoperator] add member user_name;
--go
--alter role [db_datareader] add member user_name;
--go
--alter role [db_datawriter] add member user_name;
--go
--alter role [db_ddladmin] add member user_name;
--go
--alter role [db_denydatareader] add member user_name;
--go
--alter role [db_denydatawriter] add member user_name;
--go
--alter role [db_owner] add member user_name;
--go
--alter role [db_securityadmin] add member user_name;
--go ----安全对象
----use database_name;
----go
----授予权限
----备份日志
--grant backup log to user_name;
--go
----备份数据库
--grant backup database to user_name;
--go
----插入
--grant insert to user_name;
--go
----查看定义
--grant view definition to user_name;
--go
----查看任意列加密密钥定义
--grant view any column encryption key definition to user_name;
--go
----查看任意列主密钥定义
--grant view any column master key definition to user_name;
--go
----查看数据库状态
--grant view database state to user_name;
--go
----撤销掩码
--grant unmask to user_name;
--go
----创建xml架构集合
--grant create xml schema collection to user_name;
--go
----创建表
--grant create table to user_name;
--go
----创建程序集
--grant create assembly to user_name;
--go
----创建队列
--GRANT CREATE QUEUE to user_name;
--go
----创建对称密钥
--grant create symmetric key to user_name;
--go
----创建非对称密钥
--grant create asymmetric key to user_name;
--go
----创建服务
--grant create service to user_name;
--go
----创建规则
--grant create rule to user_name;
--go
----创建过程
--grant create procedure to user_name;
--go
----创建函数
--grant create function to user_name;
--go
----创建架构
--grant create schema to user_name;
--go
----创建角色
--grant create role to user_name;
--go
----创建类型
--grant create type to user_name;
--go
----创建路由
--grant create route to user_name;
--go
----创建默认值
--grant create default to user_name;
--go
----创建全文目录
--grant create fulltext catalog to user_name;
--go
----创建视图
--grant create view to user_name;
--go
----创建数据库DDL事件通知
--grant create database dll event notification to user_name;
--go
----创建同义词
--grant create synonym to user_name;
--go
----创建消息类型
--grant create message type to user_name;
--go
----创建远程服务绑定
--grant create remote service binding to user_name;
--go
----创建约定
--grant create contract to user_name;
--go
----创建证书
--grant create certificate to user_name;
--go
----订阅查询通知
--grant subscribe query notifications to user_name;
--go
----更改
--grant alter to user_name;
--go
----更改任何外部数据源
--grant alter any external data source to user_name;
--go
----更改任何外部文件格式
--grant alter any external file format to user_name;
--go
----更改任何掩码
--grant alter any mask to user_name;
--go
----更改任意安全策略
--grant alter any security policy to user_name;
--go
----更改任意程序集
--grant alter any assembly to user_name;
--go
----更改任意对称密钥
--grant alter any symmetric key to user_name;
--go
----更改任意非对称密钥
--grant alter any asymmetric key to user_name;
--go
----更改任意服务
--grant alter any service to user_name;
--go
----更改任意架构
--grant alter any schema to user_name;
--go
----更改任意角色
--grant alter any role to user_name;
--go
----更改任意路由
--grant alter any route to user_name;
--go
----更改任意全文目录
--grant alter any fulltext catalog to user_name;
--go
----更改任意数据空间
--grant alter any dataspace to user_name;
--go
----更改任意数据库DDL数据库触发器
--grant alter any database ddl trigger to user_name;
--go
----更改任意数据库审核
--grant alter any database audit to user_name;
--go
----更改任意数据库事件通知
--grant alter any database event notification to user_name;
--go
----更改任意消息类型
--grant alter any message type to user_name;
--go
----更改任意应用程序角色
--grant alter any application role to user_name;
--go
----更改任意用户
--grant alter any user to user_name;
--go
----更改任意远程服务绑定
--grant alter any remote service binding to user_name;
--go
----更改任意约定
--grant alter any contract to user_name;
--go
----更改任意证书
--grant alter any certificate to user_name;
--go
----更新
--grant update to user_name;
--go
----检查点
--grant checkpoint to user_name;
--go
----接管所有权
--grant take ownership to user_name;
--go
----控制
--grant control to user_name;
--go
----控制聚合
--grant create aggregate to user_name;
--go
----连接
--grant connect to user_name;
--go
----连接复制
--grant connect replication to user_name;
--go
----删除
--grant delete to user_name;
--go
----身份验证
--grant authenticate to user_name;
--go
----显示计划
--grant showplan to user_name;
--go
----选择
--grant select to user_name;
--go
----引用
--grant references to user_name;
--go
----执行
--grant execute to user_name;
--go ----授予并允许转售权限
----安全对象
----use database_name;
----go
----备份日志
--grant backup log to user_name with grant option;
--go
----备份数据库
--grant backup database to user_name with grant option;
--go
----插入
--grant insert to user_name with grant option;
--go
----查看定义
--grant view definition to user_name with grant option;
--go
----查看任意列加密密钥定义
--grant view any column encryption key definition to user_name with grant option;
--go
----查看任意列主密钥定义
--grant view any column master key definition to user_name with grant option;
--go
----查看数据库状态
--grant view database state to user_name with grant option;
--go
----撤销掩码
--grant unmask to user_name with grant option;
--go
----创建xml架构集合
--grant create xml schema collection to user_name with grant option;
--go
----创建表
--grant create table to user_name with grant option;
--go
----创建程序集
--grant create assembly to user_name with grant option;
--go
----创建队列
--GRANT CREATE QUEUE to user_name with grant option;
--go
----创建对称密钥
--grant create symmetric key to user_name with grant option;
--go
----创建非对称密钥
--grant create asymmetric key to user_name with grant option;
--go
----创建服务
--grant create service to user_name with grant option;
--go
----创建规则
--grant create rule to user_name with grant option;
--go
----创建过程
--grant create procedure to user_name with grant option;
--go
----创建函数
--grant create function to user_name with grant option;
--go
----创建架构
--grant create schema to user_name with grant option;
--go
----创建角色
--grant create role to user_name with grant option;
--go
----创建类型
--grant create type to user_name with grant option;
--go
----创建路由
--grant create route to user_name with grant option;
--go
----创建默认值
--grant create default to user_name with grant option;
--go
----创建全文目录
--grant create fulltext catalog to user_name with grant option;
--go
----创建视图
--grant create view to user_name with grant option;
--go
----创建数据库DDL事件通知
--grant create database dll event notification to user_name with grant option;
--go
----创建同义词
--grant create synonym to user_name with grant option;
--go
----创建消息类型
--grant create message type to user_name with grant option;
--go
----创建远程服务绑定
--grant create remote service binding to user_name with grant option;
--go
----创建约定
--grant create contract to user_name with grant option;
--go
----创建证书
--grant create certificate to user_name with grant option;
--go
----订阅查询通知
--grant subscribe query notifications to user_name with grant option;
--go
----更改
--grant alter to user_name with grant option;
--go
----更改任何外部数据源
--grant alter any external data source to user_name with grant option;
--go
----更改任何外部文件格式
--grant alter any external file format to user_name with grant option;
--go
----更改任何掩码
--grant alter any mask to user_name with grant option;
--go
----更改任意安全策略
--grant alter any security policy to user_name with grant option;
--go
----更改任意程序集
--grant alter any assembly to user_name with grant option;
--go
----更改任意对称密钥
--grant alter any symmetric key to user_name with grant option;
--go
----更改任意非对称密钥
--grant alter any asymmetric key to user_name with grant option;
--go
----更改任意服务
--grant alter any service to user_name;
--go
----更改任意架构
--grant alter any schema to user_name with grant option;
--go
----更改任意角色
--grant alter any role to user_name with grant option;
--go
----更改任意路由
--grant alter any route to user_name with grant option;
--go
----更改任意全文目录
--grant alter any fulltext catalog to user_name with grant option;
--go
----更改任意数据空间
--grant alter any dataspace to user_name with grant option;
--go
----更改任意数据库DDL数据库触发器
--grant alter any database ddl trigger to user_name with grant option;
--go
----更改任意数据库审核
--grant alter any database audit to user_name with grant option;
--go
----更改任意数据库事件通知
--grant alter any database event notification to user_name with grant option;
--go
----更改任意消息类型
--grant alter any message type to user_name with grant option;
--go
----更改任意应用程序角色
--grant alter any application role to user_name with grant option;
--go
----更改任意用户
--grant alter any user to user_name with grant option;
--go
----更改任意远程服务绑定
--grant alter any remote service binding to user_name with grant option;
--go
----更改任意约定
--grant alter any contract to user_name with grant option;
--go
----更改任意证书
--grant alter any certificate to user_name with grant option;
--go
----更新
--grant update to user_name with grant option;
--go
----检查点
--grant checkpoint to user_name with grant option;
--go
----接管所有权
--grant take ownership to user_name with grant option;
--go
----控制
--grant control to user_name with grant option;
--go
----控制聚合
--grant create aggregate to user_name with grant option;
--go
----连接
--grant connect to user_name with grant option;
--go
----连接复制
--grant connect replication to user_name with grant option;
--go
----删除
--grant delete to user_name with grant option;
--go
----身份验证
--grant authenticate to user_name with grant option;
--go
----显示计划
--grant showplan to user_name with grant option;
--go
----选择
--grant select to user_name with grant option;
--go
----引用
--grant references to user_name with grant option;
--go
----执行
--grant execute to user_name with grant option;
--go ----拒绝权限
----安全对象
--use database_name;
--go
----备份日志
--deny backup log to user_name;
--go
----备份数据库
--deny backup database to user_name;
--go
----插入
--deny insert to user_name;
--go
----查看定义
--deny view definition to user_name;
--go
----查看任意列加密密钥定义
--deny view any column encryption key definition to user_name;
--go
----查看任意列主密钥定义
--deny view any column master key definition to user_name;
--go
----查看数据库状态
--deny view database state to user_name;
--go
----撤销掩码
--deny unmask to user_name;
--go
----创建xml架构集合
--deny create xml schema collection to user_name;
--go
----创建表
--deny create table to user_name;
--go
----创建程序集
--deny create assembly to user_name;
--go
----创建队列
--deny CREATE QUEUE to user_name;
--go
----创建对称密钥
--deny create symmetric key to user_name;
--go
----创建非对称密钥
--deny create asymmetric key to user_name;
--go
----创建服务
--deny create service to user_name;
--go
----创建规则
--deny create rule to user_name;
--go
----创建过程
--deny create procedure to user_name;
--go
----创建函数
--deny create function to user_name;
--go
----创建架构
--deny create schema to user_name;
--go
----创建角色
--deny create role to user_name;
--go
----创建类型
--deny create type to user_name;
--go
----创建路由
--deny create route to user_name;
--go
----创建默认值
--deny create default to user_name;
--go
----创建全文目录
--deny create fulltext catalog to user_name;
--go
----创建视图
--deny create view to user_name;
--go
----创建数据库DDL事件通知
--deny create database dll event notification to user_name;
--go
----创建同义词
--deny create synonym to user_name;
--go
----创建消息类型
--deny create message type to user_name;
--go
----创建远程服务绑定
--deny create remote service binding to user_name;
--go
----创建约定
--deny create contract to user_name;
--go
----创建证书
--deny create certificate to user_name;
--go
----订阅查询通知
--deny subscribe query notifications to user_name;
--go
----更改
--deny alter to user_name;
--go
----更改任何外部数据源
--deny alter any external data source to user_name;
--go
----更改任何外部文件格式
--deny alter any external file format to user_name;
--go
----更改任何掩码
--deny alter any mask to user_name;
--go
----更改任意安全策略
--deny alter any security policy to user_name;
--go
----更改任意程序集
--deny alter any assembly to user_name;
--go
----更改任意对称密钥
--deny alter any symmetric key to user_name;
--go
----更改任意非对称密钥
--deny alter any asymmetric key to user_name;
--go
----更改任意服务
--deny alter any service to user_name;
--go
----更改任意架构
--deny alter any schema to user_name;
--go
----更改任意角色
--deny alter any role to user_name;
--go
----更改任意路由
--deny alter any route to user_name;
--go
----更改任意全文目录
--deny alter any fulltext catalog to user_name;
--go
----更改任意数据空间
--deny alter any dataspace to user_name;
--go
----更改任意数据库DDL数据库触发器
--deny alter any database ddl trigger to user_name;
--go
----更改任意数据库审核
--deny alter any database audit to user_name;
--go
----更改任意数据库事件通知
--deny alter any database event notification to user_name;
--go
----更改任意消息类型
--deny alter any message type to user_name;
--go
----更改任意应用程序角色
--deny alter any application role to user_name;
--go
----更改任意用户
--deny alter any user to user_name;
--go
----更改任意远程服务绑定
--deny alter any remote service binding to user_name;
--go
----更改任意约定
--deny alter any contract to user_name;
--go
----更改任意证书
--deny alter any certificate to user_name;
--go
----更新
--deny update to user_name;
--go
----检查点
--deny checkpoint to user_name;
--go
----接管所有权
--deny take ownership to user_name;
--go
----控制
--deny control to user_name;
--go
----控制聚合
--deny create aggregate to user_name;
--go
----连接
--deny connect to user_name;
--go
----连接复制
--deny connect replication to user_name;
--go
----删除
--deny delete to user_name;
--go
----身份验证
--deny authenticate to user_name;
--go
----显示计划
--deny showplan to user_name;
--go
----选择
--deny select to user_name;
--go
----引用
--deny references to user_name;
--go
----执行
--deny execute to user_name;
--go ----扩展属性
----声明数据库引用
----use database_name
--go
----添加扩展注释
--exec sys.sp_addextendedproperty @name=N'description_name', @value=N'description_value', @level0type=N'user',@level0name=N'user_name';
--go

语法注释

--database_name
--数据库名称
--user_name
--指定在此数据库中用于识别该用户的名称。user_name 为 sysname。
--它的长度最多是 128 个字符。在创建基于Windows主体的用户时,除非指定其他用户名,否则Windows主体名称将成为用户名。
--login_name
--指定要为其创建数据库用户的登录名。login_name必须是服务器中的有效登录名。
--可以是基于Windows主体(用户或组)的登录名,也可以是使用SQL Server身份验证的登录名。
--当此SQL Server登录名进入数据库时,它将获取正在创建的这个数据库用户的名称和ID。
--在创建从 Windows 主体映射的登录名时,请使用格式 [<domainName>\<loginName>]。
--如果CREATE USER语句是SQL批处理中唯一的语句,则Windows Azure SQL Databas 将支持WITH LOGIN子句。
--如果CREATE USER语句不是SQL批处理中唯一的语句或在动态SQL中执行,则不支持 WITH LOGIN 子句。
--with default_schema=architecture_name;
--指定服务器为此数据库用户解析对象名时将搜索的第一个架构。
--allow_encrypted_value_modifications={ on | off }
--适用范围:SQL Server 2016 (13.x) 到SQL Server 2017、SQL Database。
--取消在大容量复制操作期间对服务器进行加密元数据检查。这使用户能够在表或数据库之间大容量复制加密数据,
--而无需对数据进行解密。默认为 OFF。
--without login
--指定不应将用户映射到现有登录名。
--asymmetric KEY asym_key_name
--适用范围:SQL Server 2008到SQL Server 2017、SQL Database。
--指定要为其创建数据库用户的非对称密钥。
--certificate certificate_name
--适用范围:SQL Server 2008到SQL Server 2017、SQL Database。
--指定要为其创建数据库用户的证书。
--description_name
--用户自定义用户注释名称。
--description_value
--用户自定义用户注释值。

示例

/**********示例**********/
--声明数据库引用
use [testss];
go
--判断用户是否存在,如果存在则删除,不存在则创建
if exists(select * from sys.database_principals where name='tests')
--把架构修改回来架构自身
alter authorization on schema::[db_accessadmin] to db_accessadmin;
--删除角色拥有的成员
alter role [db_accessadmin] drop member tests;
--删除用户
drop user tests;
go
--创建当前数据库用户自定义用户
create user tests
for login tests
with default_schema=dbo,allow_encrypted_value_modifications=on; --拥有的架构
use testss;
go
alter authorization on schema::[db_accessadmin] to tests;
go --成员身份
use testss;
go
alter role [db_accessadmin] add member tests;
go --安全对象
use testss;
go
--授予权限
--备份日志
grant backup log to tests;
go --扩展属性
--声明数据库引用
--use database_name
go
--添加扩展注释
exec sys.sp_addextendedproperty @name=N'tests_description', @value=N'用户自定义用户描述', @level0type=N'user',@level0name=N'tests';
go

示例结果

SQLServer创建用户自定义数据库用户的更多相关文章

  1. SQLServer之修改用户自定义数据库用户

    修改用户自定义数据库用户注意事项 默认架构将是服务器为此数据库用户解析对象名时将搜索的第一个架构. 除非另外指定,否则默认架构将是此数据库用户创建的对象所属的架构. 如果用户具有默认架构,则将使用默认 ...

  2. SQLServer之删除用户自定义数据库用户

    删除用户自定义数据库用户注意事项 不能从数据库中删除拥有安全对象的用户. 必须先删除或转移安全对象的所有权,才能删除拥有这些安全对象的数据库用户. 不能删除 guest 用户,但可在除 master ...

  3. ABP框架使用Mysql数据库,以及基于SQLServer创建Mysql数据库的架构和数据

    ABP默认的数据库是SQLServer,不过ABP框架底层是EF框架,因此也是很容易支持其他类型的数据库的,本篇随笔介绍在ABP框架使用Mysql数据库,以及基于SQLServer创建MySql数据库 ...

  4. 使用PLSQL 创建Oracle数据库用户并设置权限

    转至https://blog.csdn.net/ying890/article/details/14083029?utm_medium=distribute.pc_relevant_download. ...

  5. Chapter 2 User Authentication, Authorization, and Security(8):创建映射到登录名的数据库用户

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38944121,专题目录:http://blog.csdn.net/dba_huangzj ...

  6. Confluence 6 PostgreSQL 创建数据库和数据库用户

    一旦你成功的安装了 PostgreSQL 数据库: 创建一个数据库用户,例如 confluenceuser. 你的新用户必须能够  创建数据库对象(create database objects) 和 ...

  7. SQLSever--基础学习--创建登录用户&创建数据库用户&分配权限

    如题,本文简记一下SQL Sever里面登录用户(login)的创建,数据库用户(DBUser)的创建,以及给数据库用户分配权限(Grant). 数据库有三层保护机制: 第一层:登录用户以及登录密码的 ...

  8. sqlserver 标准系统数据库

    SQL server系统数据库很重要,大部分时候都不应该修改他们.唯一例外的是model数据库和tempdb数据库.model数据库允许部署更改到任何新创建的数据库(如存储过程),而更改tempdb数 ...

  9. sqlserver使用SQL语句创建数据库登录对象、数据库用户以及对为该用户赋予操作权限

    --创建登录名USE masterGO--PbMaster,密码123456CREATE LOGIN PbMaster with PASSWORD='1234GO --创建数据库用户USE E_Mar ...

随机推荐

  1. Eureka注册客户端

    1.pom.xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId ...

  2. Web学习的第四天

    今天通过前面的学习,自己写了段代码. 今天还学习了列表,列表的分类有:无序列表.菜单列表.目录列表.有序列表.定义列表. 列表类型                     标记符号          ...

  3. oppo设备怎么样无需root激活XPOSED框架的教程

    在非常多部门的引流或业务操作中,基本上都需要使用安卓的强大XPOSED框架,近期,我们部门购来了一批新的oppo设备,基本上都都是基于7.0以上版本,基本上都不能够获得root的su超级权限,即使一部 ...

  4. NodePort,LoadBalancer还是Ingress?我该如何选择 - kubernetes

    原文:http://mp.weixin.qq.com/s/dHaiX3H421jBhnzgCCsktg 当我们使用k8s集群部署好应用的Service时,默认的Service类型是ClusterIP, ...

  5. 技能提升丨Seacms 8.7版本SQL注入分析

    有些小伙伴刚刚接触SQL编程,对SQL注入表示不太了解.其实在Web攻防中,SQL注入就是一个技能繁杂项,为了帮助大家能更好的理解和掌握,今天小编将要跟大家分享一下关于Seacms 8.7版本SQL注 ...

  6. 【Python实践-3】汉诺塔问题递归求解(打印移动步骤及计算移动步数)

    # -*- coding: utf-8 -*- #汉诺塔移动问题 # 定义move(n,a,b,c)函数,接受参数n,表示3个柱子A.B.C中第1个柱子A的盘子数量 # 然后打印出把所有盘子从A借助B ...

  7. chrome谷歌浏览器开发者工具-网络带宽控制

    有时候我们想在本地测试一下图片预加载loading的加载情况,如下图: 可无奈一般网络带宽都比较好,基本上看不到效果,图片一下子就加载出来了, 可能这个时候有些小伙伴想到的办法是用定时器延迟加载 其实 ...

  8. 7. VIM 系列 - 程序员利器(语法检测、代码块补全、symbol管理、函数跳转)

    目录 1. 语法检查利器 ale 2. 补全代码块 3. symbol 管理器 taglist.vim 4. 函数跳转 1. 语法检查利器 ale 安装 ale Plug 'w0rp/ale' 配置 ...

  9. 最简单的SpringBoot整合MyBatis教程

    前面两篇文章和读者聊了Spring Boot中最简单的数据持久化方案JdbcTemplate,JdbcTemplate虽然简单,但是用的并不多,因为它没有MyBatis方便,在Spring+Sprin ...

  10. Redis 概念以及底层数据结构

    Redis 简介 REmote DIctionary Server(Redis) 是一个由SalvatoreSanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C ...