A、Na2CO3与H2SO4、HCl都能产生气体,再没有其它现象,所以不能鉴别,故A错误;B、黄色的溶液是氯化铁,将氯化铁滴入剩余溶液中,有红褐色沉淀生成的是氢氧化钠,再将氢氧化钠滴入剩余的两种溶液中,有白色沉淀的是氯化镁,剩余的就是氯化钠,故B正确;C、有两种生成白色沉淀的物质所以不能鉴别开,故C错误;D、Na2CO3和HNO3反应产生气体,K2SO4、Na2CO3分别与BaCl2反应都能产生沉淀,并且碳酸钡溶于硝酸,硫酸钡不溶于硝酸,故能鉴别开,故D正确.故选BD.