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

如果已忽略 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. 学习python的第二天

    4.26自我总结 一.程序语言 1.机械语言 由于0和1组成 优点:执行效率快 缺点:操作麻烦繁琐 2.汇编语言 比机械语言好点 优点:比机械语言操作方便 缺点,执行慢 3.高级语言 主要两个,jav ...

  2. Java 在PPT中绘制图形

    Microsoft PowerPoint可支持在幻灯片中插入各种类型的图形并且可设置图形填充.线条颜色.图形大小.位置等.下面将通过Java编程来演示在PPT中绘制图形的方法. 工具:Free Spi ...

  3. java:比赛中常用方法整理——字符串(基础)

    一.将字符串转化为字符数组: toCharArray返回一个字符数组. char[] a=J.toCharArray(); 二.字符串的长度 字符串的长度和字符数组的长度是不一'样'的. 字符串长度( ...

  4. NumPy的基本用法

    NumPy简介:NumPy是高性能科学计算和数据分析的基础包.是pandas等其他各种工具的基础NumPy主要功能:ndarray,一个多维数组结构,高效且节省空间无需循环对数组数据进行快速运算的数学 ...

  5. eShopOnContainers 知多少[4]:Catalog microservice

    引言 Catalog microservice(目录微服务)维护着所有产品信息,包括库存.价格.所以该微服务的核心业务为: 产品信息的维护 库存的更新 价格的维护 架构模式 如上图所示,本微服务采用简 ...

  6. HTML5 input date属性引起的探索——My97DatePicker(日期选择插件)

    不得不说H5的input date属性真的好用,之前我写的http://www.cnblogs.com/tu-0718/p/6729274.html这篇博客里面也有提到,不过虽然移动端对H5的支持还是 ...

  7. Python 进度条显示

    运行工具:Pycharm, import timescale = 50print("开始执行".center(scale//2,"-")) start = ti ...

  8. 阿里云Ubuntu下安装、配置权限和导入本地mongodb

    ---恢复内容开始--- 第一部分:首先先在Ubuntu下安装好mongodb,步骤如下: 首先我们需要借助远程管理工具链接到阿里云上的ubuntu系统,接着进行如下操作 一.导出软件源的公钥 sud ...

  9. java~google样式检查和命名规范

    对于代码的样式和各种元素的命名都是我们架构师需要考虑的,目前在java世界里,比较流行使用java的规范,包括了代码样式检查. 代码样式检查插件 样式文件xml google命名规范 一 代码样式检查 ...

  10. java 并发多线程 锁的分类概念介绍 多线程下篇(二)

    接下来对锁的概念再次进行深入的介绍 之前反复的提到锁,通常的理解就是,锁---互斥---同步---阻塞 其实这是常用的独占锁(排它锁)的概念,也是一种简单粗暴的解决方案 抗战电影中,经常出现为了阻止日 ...