月度归档:2018年09月

mssql sqlserver使用sql脚本(sql命令行)创建登录名方法分享


摘要:
下文讲述使用sql脚本创建登录名的步骤方法分享,如下所示:
实验环境:sql server 2008 R2


下文将通过举例的方式讲述sql脚本创建登录名、角色、用户、授权的方法:

1.创建登录名:

登录名的用途:
此账号主要应用于采用 “SQL Server身份验证”模式的登录名和密码的创建工作。
例:

  create login [testLoginName] with password='testLoginPwd', default_database=master
 /*
   注意事项:
     testLoginName:创建的登录名
	 testLoginPwd:创建的登录名对应的密码
	 master:创建登录名所对应的默认数据库 
   --------
     账户必须要指定默认数据库和加入相应的服务器角色和映射到相应的数据库用户上,才能作为登录使用
 */


2.登录名加入至服务器角色:

服务器角色:
用于定义登陆账户对sqlserver的相关操作权限

  exec sp_addsrvrolemember 'testLoginName','sysadmin'
  /*
    sp_addsrvrolemember:将登录名添加至相应角色的系统存储过程
	testLoginName:登录名
	sysadmin:角色名称 
  */


3.创建数据库用户:

数据库用户:
用于控制数据库(dataBase)的相关权限的账户,需同登录名进行相关映射,一个登录名只能映射一个数据库用户。

   create user testLoginNameUser for login testLoginName with default_schema=testDbo
   /*
    注意事项:
	  testLoginNameUser:数据库用户名
	  testLoginName:关联的sqlserver登录名
	  testDbo是此用户对应的架构名称
     
   */


4.数据库用户添加至数据库角色的方法:

此方法的主要功能使数据库用户拥有相应的权限操作数据库中的表视图 存储过程等对象

  exec sp_addrolemember 'testLoginNameRole','testLoginNameUser'
  /*
    sp_addrolemember:将用户名添加至相应数据库角色的系统存储过程
	testLoginNameRole:角色名称
	testLoginNameUser:用户名 
  */
 


5.数据库授权:

此命令将相应的权限授权给数据库角色,使相应的登录账户拥有相应的权限的变相的方式实现权限授予

  grant select on table to testLoginNameRole
  /*
    将select操作命令,操作对象为table授予给数据库角色testLoginNameRole
  */


6.删除数据库授权:

此命令可从数据库角色里面回收相应的权限

  revoke select on table to testLoginNameRole 
  /*
    将select操作命令,操作对象为table 从数据库角色testLoginNameRole中剔除
  */


7.拒绝数据库select操作:

此命令可使指定角色无相应的操作权限

  deny select on table to testLoginNameRole 
  /*
    禁止角色 testLoginNameRole执行以下" select操作命令,操作对象为table"
  */

c#开发中json特殊字符(转义字符)处理方法收集


摘要:
下文将分享c#开发中json字符串特殊字符转义方法,如下所示:


在c#开发中,我们常常需要将字符串转换为json字符,然后发送至前端进行输出显示,但json中一些特殊的字符必须进行相关的转义,否则会出现异常现象,
例:

    public String stringToJSON(String tmp) {         
        StringBuilder info = new StringBuilder();         
        for (int i=0; i
					

mssql sqlserver “select * from tableName” 查询的缺点


摘要:
下文分享”select * from tableName”查询写法的危害,如下所示:
实验环境:sql server 2008 R2


select *写法缺点1:
返回多余的列给客户端,造成网络压力过大,增加服务器压力。
select *写法缺点2:
select * from table where [列] …
当我们对[列]添加索引后,返回数据时,都需要再次进行RID查找,获取列的全部信息,使索引效果减弱。
select *写法缺点3:
由于需返回全部列,数据库返回数据时,都会从系统基础表中获取相关列信息,增加服务器系统表查询次数。
select *写法缺点4:
如果涉及多表查询,可能会使相同表名的列返回数据混乱。